# スプレッドシートのセルの実行

ほかのほとんどの標準スプレッドシートと同じように、In-Sight スプレッドシートのセルの実行順序はセルの関数間の関連性と依存関係に基づいて動的に決定されます。In-Sight スプレッドシートでは、第一に依存関係に基づいたセルの評価、第二にスプレッドシート内におけるセルの位置によってセルの実行順序が決定されます。

### セルの依存関係

次の例では、セル B2 とセル A3 の値が A2 の値に直接依存しています。セル A4 は A3 を参照するため、A2 に間接的に依存しています。A2 の値が変更されると、B2 および A3 の値に続き、A4 の値も再評価される必要があります。内部実行ツリーが自動的に作成され、セルの依存関係が追跡されます。このツリーはシステムがオフラインのときに、スプレッドシートが変更されるたびに再構築されます。

###### 例 1:シンプルな依存関係ツリー

> A2 = 1
> A3 = A2+1
> A4 = A3+1
> B2 = A2+2

セルの値または数式が変更されると、In-Sight スプレッドシートはツリー内のセルを特定し、再評価する必要のあるセルを決定します。この例では、A2 の値が変更された場合、依存するすべてのセル (B2、A3、および A4) を再評価する必要があります。ただし、セル B2 の数式が変更された場合、B2 に依存するセルはないため、他のセルを更新する必要はありません。

### セルの実行順序

依存関係が評価された後、スプレッドシート内のそれぞれの位置によってセルが評価されます。セルは行座標で (左から右に) ソートされ、次に列座標で (上から下に) ソートされます。

### セルの実行順序の例外

通常のセルの実行順序における例外を以下に示します。

- クロックド関数
- 依存関係のないセル参照を含む関数

実行ツリーで、クロックド関数は他のセルの古いデータにアクセスする必要があるため、ツリーの最上部に常に配置されます。

一部の関数はセル参照を引数として受け取りますが、依存関係はありません。そのような関数の例として、参照されたセルの行座標を返す Row 関数があります。

### 実行がトリガされる条件

セルは次の場合に実行されます。

- 依存関係のあるセルが変更された場合。
- トリガなどの外部イベントが発生した場合。
- 画面表示のオペレータ I/F 関数 (Button、Checkbox、EditInt など) がスプレッドシートイベントトリガ信号を発した場合。

ほとんどのビジョンツール関数は、関数 (デフォルトではセル A0) に直接または間接的に依存します。新しい画像が取り込まれるたびに、これらの関数が実行され、新しい値を返します。また、画像の取り込み、または他のスプレッドシートイベントがトリガされると、スプレッドシートは更新されます。