> ## 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 に渡します。ブロックを作成し、列を一覧化し、OutputTable を使用して Region を選択します。

**テーブルブロック**は、検出されたテーブルの座標を FlexiCapture に渡すために使用します。検出されたテーブルのデータは FlexiCapture で抽出されます。**テーブルブロック**は、ブロック全体を囲む Region だけでなく、各テーブルセルを囲む矩形も返す点で、他の種類のブロックとは異なります。また、**テーブルブロック**には、他の種類のブロックにはない追加のプロパティとして、テーブルに含まれる可能性のある列のリストがあります。FlexiLayout には 1 つ以上の **Table** 要素を含めることができ、これらの要素は、ブロックで指定された列をどこでどのように探すかをプログラムに指示します。

* **Table** 要素を作成する際は、既に作成されている **テーブルブロック**にそれを「バインド」する必要があるため、通常は先にブロックを作成します。最初におおよその search area を指定し、その後でブロックを探すための要素を 1 つ以上作成して、それらの **Table** 要素を使用してブロックの search area を最終的に確定できます。
* 複数の要素を作成し、それぞれに同じ **テーブルブロック**を見つけるための独自のアルゴリズムを設定することもできます。ブロックが見つかった後、そのテーブルブロックに最も適した **Table** 要素を選択するようプログラムに指示できます。これは Region expression を使用して行います。

**テーブルブロック**は、FlexiLayout tree では <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/Table_Block.gif?fit=max&auto=format&n=lqYknuOmCa79141v&q=85&s=b587cb447531d0883066fce4033ae88e" alt="テーブルブロック アイコン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="15" height="15" data-path="images/flexi-capture/fls/Table_Block.gif" /> で示されます。

<div id="create-a-table-block">
  ## テーブルブロックを作成する
</div>

<Steps>
  <Step title="FlexiLayout ウィンドウに切り替える" />

  <Step title="Blocks ブランチを選択する">
    **FlexiLayout** ツリーで **Blocks** ブランチを選択します。
  </Step>

  <Step title="テーブルブロックを追加する">
    **FlexiLayout** メニューから **Add Block → Table** を選択するか、ショートカットメニューから **New → Table** を選択します。
  </Step>

  <Step title="テーブルブロック タブでブロックのプロパティを設定する">
    次の項目を指定します。

    * ブロックの名前
    * 必要に応じてコメント
    * ブロック領域およびテーブルの行・列の区切りが **Table** 要素によって返される領域と一致する場合は、**Source element** オプションを選択し、<img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Button_Search.gif?s=36d8764847225cffab245081f5274192" alt="検索ボタン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="31" height="18" data-path="images/flexi-capture/fls/Button_Search.gif" /> をクリックします。**Select Element** ダイアログで、領域がブロック領域と一致する **Table** 要素を選択し、**OK** をクリックします。
    * ブロック領域がどの **Table** 要素の領域とも一致しない場合は、**Region expression** オプションを選択し、**Region expression** フィールドに必要なコードを入力します。コードを確認するには **Check** をクリックします。
  </Step>

  <Step title="Columns タブで列を指定する">
    ブロック内に含まれる可能性のある列を指定します。

    1. **Add...** をクリックし、列名を入力します。テスト画像で使われている列名をそのまま使用すると便利です。
    2. **Type** ドロップダウンリストから、列の型 (**Text**、**Barcode**、**Checkmark**、**Picture**、または **Non-Recognized Block**) を選択します。
    3. 列名または型を変更するには、**Edit...** をクリックし、**Edit Table Column** ダイアログで新しい名前を入力するか、別の型を選択します。
    4. <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Button_Down_Table.gif?fit=max&auto=format&n=fmgRWFNHKYN2MLSg&q=85&s=0b97cc8954437f7ce4a776808f92f271" alt="下へボタン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="27" height="18" data-path="images/flexi-capture/fls/Button_Down_Table.gif" /> ボタンと <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Button_Up_Table.gif?s=1223f3bf294a1e1de73888cbc5479e4d" alt="上へボタン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="27" height="18" data-path="images/flexi-capture/fls/Button_Up_Table.gif" /> ボタンを使用して、データ抽出アプリケーションで必要な順序に列を並べます。
  </Step>
</Steps>

<div id="example-specify-which-block-region-to-select">
  ## 例: 選択するブロック領域を指定する
</div>

ブロックの領域を指定するには、`TableHypothesis` 型の定義済み変数 `OutputTable` を使用します。

次のコード例では、最も多くの行が検出された **Table** 要素 を選択します。

```text theme={null}
let T1 = SearchElements.TableElement1;
let T2 = SearchElements.TableElement2;
if T1.RowsCount > T2.RowsCount then OutputTable = T1; else OutputTable = T2;
```

<Note>
  この例のTable 要素 `SearchElements.TableElement1` と `SearchElements.TableElement2` は、Region expression field に上記のコードを含む同一の **Table** ブロックを参照している必要があります。
</Note>
