> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# オブジェクトモデル

> ABBYY FlexiCapture スクリプト向けオブジェクトモデルの基本: コレクションのメソッド、繰り返しfieldとテーブル行、および文書のfieldへのパスの組み立て方。

ここで使用するオブジェクトモデルの詳細は、以下のとおりです。

<div id="working-with-collections">
  ## コレクションの操作
</div>

オブジェクト モデル内のすべてのコレクションで、次のメソッドを使用できます。

<table width="100%"><thead><tr><th style={{textAlign: 'left'}}><p><strong>名称</strong></p></th><th style={{textAlign: 'left'}}><p><strong>型</strong></p></th><th style={{textAlign: 'left'}}><p><strong>アクセス</strong></p></th><th style={{textAlign: 'left'}}><p><strong>説明</strong></p></th></tr></thead><tbody><tr><td><p>Count</p></td><td><p>int</p></td><td><p>読み取り専用</p></td><td><p>コレクションに含まれるアイテム数</p></td></tr><tr><td><p>Item( index : int )</p></td><td><p>ItemInterface</p></td><td><p>読み取り専用</p></td><td><p>指定した index のアイテムをコレクションから取得します。</p><p>インデックスは "0" から始まります。</p></td></tr></tbody></table>

<Note>
  メソッド Item を使用する代わりに、選択した言語に応じて、丸括弧または角括弧を使ってコレクションのアイテムを参照することもできます。**JScript**、**VBScript**、**Visual Basic.Net** では丸括弧を使用します。**C#.Net** では角括弧のみ使用できます。**JScript.Net** では丸括弧と角括弧の両方を使用できます。
</Note>

たとえば、

```
Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello"
```

すべてのコレクションは、"for each" などの構文で使用できます。

<div id="working-with-recurring-fields-and-tables">
  ## 繰り返し field とテーブルの操作
</div>

テーブルを除くすべての文書 field は、繰り返しにできます。

文書構造では、繰り返し field は、空でない **Items** コレクションを持つ特別なプロトタイプ field として表されます。

プロトタイプ field には、子アイテムも値もありません。これは、field の反復のセットを格納するためだけに使用されます。子 field や field values は、field インスタンスの属性としてのみ存在でき、[IField](/ja/flexi-capture/appendix/scripts/ifield) object の **Items** メソッドを通じて利用できます。

テーブルには常に **Rows** コレクションがあります (**Rows** は **Items** の同義語です) 。**Rows** コレクションには、行の **Children** メソッドを通じてセルにアクセスできる行だけが含まれます。

## <a id="pathforming" />field へのパスの構成

[IDocument](/ja/flexi-capture/appendix/scripts/idocument) オブジェクトの Field、HasField、IndexedItemValue の各メソッドでは、フォーム上の field へのパスをパラメーターとして使用します。BNF (Backus-Naur Form) を使用したパスの正式な表記は、次のとおりです。

\<Path> ::= \<Path\_component> | \<Path> "" \<Path\_component>

\<Path\_component> ::= \<Field\_name> | \<Field\_name> "\["\<Field\_iteration\_number>"]"

ここで、**Field\_name** は Document Definition で定義されている文書のfield の名前を表し、**Field\_iteration\_number** は繰り返し field の反復番号 (テーブルの場合は行番号) で、"0" から始まります。

パスには、完全パスと相対パスがあります。完全パスはドキュメントセクション名から始まり、相対パスはグループ内の子アイテム名から始まります。

たとえば、"Section" セクション内にある "Table" テーブルの "Total" 列の 3 行目を指定するには、次のように記述します。

```
"Section\Table[2]\Total"
```

このような完全名は、[IField](/ja/flexi-capture/appendix/scripts/ifield)オブジェクトの**FullName**メソッドで作成できます。
