スプレッドシートのセルの実行と参照の編集

スプレッドシートは、セルのブロック操作、セルの編集、セルの参照、関数の挿入などの標準の操作と機能はほかのスプレッドシートアプリケーションに似ています。スプレッドシートは、400 行 (0 ~ 399) と 26 列 (A ~ Z) に配列されたセルのテーブルで編成され、個々のセルは、列文字と行番号によって識別されます。例えば、セル A2 は A 列と 2 行が交差する場所です。

スプレッドシートは、一度に 1 つのセルが設定されます。各セルのコンテンツは数式として定義され、セルに挿入された情報は、単一の数値であっても、複雑なビジョン処理関数であっても、数式の一部とみなされます。セルをハイライトすると、セルが黒い枠で囲まれ、セル内の情報が [ジョブの編集] ツールバー数式バーに表示されます。セルをクリックすると、そのセルが自動的にアクティブセルになります。

:  スプレッドシートを右クリックすると、ショートカットメニューが表示され、さまざまなスプレッドシート操作を実行することができます。

セルの実行順序

ほかのほとんどの標準スプレッドシートと同じように、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 に依存するセルはないため、ほかのセルを更新する必要はありません。

セルの実行順序

依存関係が評価されると、セルはスプレッドシート内のそれぞれの位置によって評価されます。セルは行座標で (左から右に) ソートされ、次に列座標で (上から下に) ソートされます。前述の例では、セル A2 が最初に実行され、次にセル B2、A3、A4 の順に実行されます。同じ行に 2 つのセルが存在する場合、最も左側にあるセルが最初に実行されます。

プロファイラで、セル A2 が最初に実行され、次にセル B2、A3、そして最後に A4 が実行されることを確認できます。

セルの実行順序の例外

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

ReadResult および WriteResult 関数は、スプレッドシート内の位置にかかわらず、実行ツリーの最下部近くに配置されます。ReadResult はスレーブの WriteResult から返されるデータを待機するため、データを待機して時間を無駄にすることのないように、この関数はジョブの最後に実行されます。WriteResult も、システムで次のトリガを取得する準備ができている状態にするため、ジョブの終盤に実行されます。

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

一部の関数はセル参照を引数として受け取りますが、依存関係を確立しません。参照されたセルの行座標を返す Row 関数は、そのような関数の 1 つです。例えば、Row(A4) は、A4 の値が変わった場合でも、常に 4 を返します。

例 3: 実行順序の例外

次の ReadResult 関数が例 1 のスプレッドシートに追加されました。

A1 = ReadResult($A$0,"SYSTEM1",1000)

プロファイラで、セル A1 はスプレッドシートの上部にあるにもかかわらず、実行ツリーの最後にあることが確認できます。

次に、クロックドデータ関数が追加されます。

A5 = Accumulate($A$0,0,0,0)

セル A5 はデータが含まれるほかのセルよりも下にあるにもかかわらず、実行ツリーの最上部にあることに注意してください。

実行がトリガされる条件

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

  • 依存関係があるセルが変更された場合。
  • AcquireImage トリガ、シリアルデータ、および TCPDevice への受信パケットなど、外部イベントが発生した場合。
  • オペレータ I/F (ボタン、チェックボックス、EditInt など) がスプレッドシートイベントトリガの信号を発した場合。

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

スプレッドシートへの情報の入力

マシンビジョンアプリケーションは、数式を組み立てて、それをスプレッドシートのセルに挿入することによって設定されます。数式には、数値、テキスト、別のセルへの絶対参照または相対参照、あるいは特定のパラメータがある関数の 4 種類のデータを含めることができます。

:  In-Sight のスプレッドシートは、最大 4,096 のアクティブセルを含むことができます。それ自身が複数のビジョンデータアクセス関数を挿入する関数 (FindBlobs など) をスプレッドシートに挿入すると、スプレッドシートが制限を超えようとすることがあります。この場合、警告ダイアログは表示されませんが、4,096 の制限を超えるセルは挿入されません。

セルに数値を挿入する

空白のセルを選択して、数値 (例えば、26) を入力します。

セルにテキストを挿入する

空白のセルを選択して、アポストロフィ (') キーを押します。先頭にアポストロフィの付いたテキストは、数式ではなくテキストラベルとしてアクティブセルに挿入されます。

セルにセル参照を挿入する

セルにセル参照を挿入するには、4 つの異なる方法があります。

  • 空白のセルをダブルクリックした後、参照先のセルをクリックします (これは相対参照を生成します。絶対参照を生成するには、Shift キーを押しながらクリックします)。





  • 空白のセルを選択した後、手動で参照先のセル名を入力します (これは相対参照を生成します。絶対参照を生成するには、文字と数字の前に $ 記号を入力します [例: $C$3])。



  • 空白のセルを選択した後、Ctrl+Shift+A または Ctrl+Shift+R キーを押すと、それぞれ絶対または相対セル参照が挿入されて、セル選択モードになります。
  • 空白のセルを選択した後、[ジョブの編集] ツールバー[絶対参照] または [相対参照] ボタンをクリックして、セル選択モードに切り替えます。

セルに関数を挿入する

セルに関数を挿入するには、6 つの異なる方法があります。

  • パレットから空白のセルに関数をドラッグします。関連するプロパティシートが関数にある場合には、プロパティシートが自動的に開きます。
  • 空白のセルを選択し、[パレット] 内の関数をダブルクリックします。関連するプロパティシートが関数にある場合には、プロパティシートが自動的に開きます。
  • 空白のセルを選択し、[ジョブの編集] ツールバー[式] ボタンをクリックします。[関数の挿入] ダイアログが開きます。
  • 空白のセルを選択し、Enter キーまたは等号キーを押します。次に、↑または↓キーを押します。関数ボックスが表示され、関数を入力または選択することができます。Tab キーまたは Enter キーを押して、関数ボックスを閉じます。



  • 空白のセルを選択し、手動で関数の名前を入力して、Enter キーを押すか、または手動で左括弧を入力します。関連するプロパティシートが関数にある場合には、プロパティシートが自動的に開きます。



  • 空白のセルを選択し、数式バーに手動で関数の名前を入力して、Enter キーを押すか、または手動で左括弧を入力します。関連するプロパティシートが関数にある場合には、プロパティシートが自動的に開きます。



:  可変長の引数リストを持つ関数 (WizardWriteEIP など) には、プロパティシートがありません。

数式の確定またはキャンセル

新しい数式または値を確定するには、次のいずれかを実行します。

新しい数式または値をキャンセルし、前の式に戻すには、次のいずれかを実行します。

テキストが赤色でハイライトされている場合は、修正しないと確定できないエラーが数式に含まれています。

ツールチップとヘルプ情報

ツールチップは、スプレッドシートと数式バーの両方で使用できます。シンタックスを参照するには、関数の括弧内をクリックしてください。

ヒント :  カーソルが関数の括弧内にあるときに F1 キーを押すと、その関数の外部ヘルプ項目が表示されます。

数式バーの使用

数式バーは、[ジョブの編集] ツールバーに含まれています。数式バーには、次の 3 つの情報が表示されます。

数式バー内をクリックして必要な変更を加えるだけで、アクティブセル内の数式、値、またはラベルを直接編集できます。関数の括弧内をクリックすると、ツールチップが表示され、シンタックスを確認できます。

スプレッドシートセルの編集

個々のセルに含まれる数式を編集するだけでなく、セルを切り取り、コピー、貼り付け、または削除したり、セルのフォーマットを調整したりできます。

:  
  • スプレッドシートを右クリックすると、ショートカットメニューが表示され、さまざまなスプレッドシート操作を実行することができます。
  • カット & ペースト操作時にエラーが発生した場合、また操作を停止するために [キャンセル] ボタンを押した場合も、切り取ったセルの内容が失われることがあります。この場合は、[元に戻す] (Ctrl+Z) を使用すると、切り取ったセルの内容が復元されます。



数値およびテキストの編集

Enter キーまたは等号キーを押して、アクティブセルの数値またはテキストを編集します。数値またはテキストに単純に上書きすることもできますが、この方法では、前の数値またはテキストが消去されます。

セル参照の編集

セル参照を変更する場合は、セル参照を挿入する場合と同じ手順で変更してください。

関数の編集

関数はプロパティシート (使用可能な場合) またはスプレッドシートで編集できます。

  • 関数にプロパティシートが関連付けられている場合、アクティブセルで Enter キーまたは等号キーを押すと、自動的に関数のプロパティシートが開きます。
  • F2 キーを押すと、プロパティシートではなく、アクティブセルで関数を編集することができます。

    ↑または↓キーを押すと、数式の下に関数ボックスが表示されます。数式内のカーソルの位置を移動するには、←または→キーを使用します。

    :  カーソルの位置に基づいて、数式内の特定の式に対して有効な関数だけが関数ボックスに表示されます。

別の関数を選択するには、必要な関数を入力するか、または選択します。Tab キーまたは Enter キーを押して、関数ボックスを閉じます。