テキストオブジェクトとデータや変数のリンク

テキストラベルは、静的オブジェクトのように単純な場合もあれば、ワークシートのセル値、データファイル名、ワークシートの列のメタデータ、データセットの統計など、さまざまなプロジェクト情報にリンクすることで解決される動的オブジェクトの場合もあります。

Linking text labels to vars 1.png

(1)軸のタイトル、凡例、データポイントラベルなどの自動生成オブジェクト、または(2)テキストまたはデータラベルツールで追加されたユーザーオブジェクトいずれかの場合でも、LabTalk 置換表記を使用して、特定のテキスト文字列と数値をテキストラベルにリアルタイムで挿入します。

グラフウィンドウのコンテキスト内では、テキストラベルを2つのグループにまとめることができます。

  • グラフテキストラベル:これには、軸のタイトルとグラフの凡例、およびテキストツールButton Text Tool.pngで追加されたラベルが含まれます。ユーザ追加ラベルについてはこちらのページをご参照ください。グラフの凡例または軸タイトルについてはこれらのページをご参照ください。
  • データプロットラベルデータラベルツールまたは作図の詳細のラベルタブを使ってラベルを有効にすることにより、データポイント(単一ポイントまたはデータセット全体)にラべルを適用します。詳細はデータポイントにラベル付けをご参照ください。

テキストラベルの置換ワークシートセル値

ワークシートセルデータをテキストラベルに表示する方法はいくつかあります。最もシンプルな(ただし最も制約のある)方法は、ワークシートのセルの内容に対してリンクの貼り付けすることです。複雑な方法では、LabTalk置換を使用します。

サンプル 1.リンクを貼りつけてセル値を挿入する

これは、ワークシートのセル値とテキストを組み合わせる最も簡単な方法です。

  1. ワークシートのセルをクリックし、CTRL + C(または右クリックしてコピー)キーを押します。
  2. テキストツールを使用してテキスト(たとえば、The value of y is:)を作成し、ラベル編集モードで右クリックして、 リンクの貼り付けを選択します。これでテキストオブジェクトにセル値が挿入されます。リンクの貼り付けをしているため、ワークシートのセル値を変更すると、ラベルに表示されている値が変更されます。

この方法を使用して、データまたはワークシートの列ラベル行部分から値を挿入できます。セル値を挿入するためのより良い方法、具体的には置換表記を使用すれば、幅広い操作が行えます。ただし、特定のワークシートセルから値を返すことだけが必要な場合は、これで十分です。

サンプル 2.置換表記を使用してセル値を挿入する

ここでは、%(workbookName, column#, row#)を使用して、セルの内容を返す基本的な置換を紹介します。

  1. Book1のワークシートの5行2列のセル値を挿入するために、テキストラベルに次のように入力します。
    The value of y is %(Book1,2,5)
  2. テキストラベルで右クリックしてプロパティを選択します。プログラミングタブをクリックし、 (%,$)にリンク,置換レベル1と設定し、OKをクリックします。
Notes:サンプル1と2の方法は、ソースワークシート名が変更されると、ワークシートとラベルのリンクが壊れ、使用できないという制限があります。次の例では、これを取り扱う方法を示します。

サンプル 3.@WTを使用してセル値を挿入し、ソースデータを参照する

Originのほとんどのデータプロットは、単一のデータ列から作成されます。そのため、列ラベル行のメタデータを含むその列のすべてのデータは、そのデータプロットに関連付けられます。テキストラベルオプション@WTを使用して置換文字列を作成すると、プロットのソースデータを参照してワークシートのセル値を返すことができます。サンプル2とは異なり、固定されたブックまたはシート名を参照する必要があるという制限を回避できます。

例えば、"The value of y is number" というテキストラベルを作成し、number には、グラフ1のソースワークシートの2列5行の節の値を読み込むようにしたいとします。

  1. WYSIWYG編集モードで次のテキストを入力するか、「オブジェクトプロパティ」ダイアログボックスに数式を入力して、OKをクリックします。
    The value of y is %(1, @WT,2,5)
  2. テキストラベルの上で右クリックし、プロパティ... を選択して、オブジェクトのプログラミング制御 タブに移動します。または、ALTキーを押しながら、テキストラベルをダブルクリックします。
  3. (%,$)にリンク, 置換レベル1にしてOKをクリックします。

この方法の利点は、@ WTが参照するワークシート列がソースデータによって識別されることです。グラフテンプレートとして保存して再利用したとき、データセット名が変更されたとしても、このテキストラベルの表示内容は新しいデータを参照して自動で更新します。

Notes:
  • または、%(1, @WT,ColName,RowIndex)を使用して、ショートネームまたはロングネームで列を参照できます。
  • %(1, @WT,ColIndex,RowIndex)使用して、行列シートの値を参照できます。

サンプル 4.セル値の挿入およびフォーマットの変更

いくつかのシンタックスでは、数値フォーマットオプションを使用して、返される数値のフォーマットをサポートしています。たとえば、上記のサンプル 2の方法によると、シートから完全精度の値が返されます。表示される表示桁数を制御するために、式にオプションのフォーマット指定子を使用できます。利用可能なシンタックスは複数あります。

  • $(expression [,format])
  • %([workbookname]sheetname, column, row [,format])
  • %([workbookName]sheetName, @WL, column[row] [,format])

最後のシンタックス-the @WL exampleは、次のフォーマットオプションをサポートしています。

引数 説明
W セルのフォーマットで返す
カスタムフォーマット Originのフォーマットを使用して変更された、セルの完全精度の値を返します。
省略 セルの完全精度の値を返す


したがって、たとえば、数値を4桁の10進数の形式にするには、次のいずれかを使用できます。

  • $(%(Book1,2,5),.4)
  •  %([Book1]Sheet1,B,5,.4)
  •  %([Book1]Sheet1,@WL,2[5],.4)

テキストラベルの列ラベル行の値(メタデータ)の置換

データ行セルに加えて、テキストラベルの列ラベル行セルの値を置換できます。必要に応じて、使用できるするシンタックスがいくつかあります。

  • %(PlotIndex, @option)
  • %(PlotIndex[PlotDesignChar], @option)
  • %(PlotIndex,@WT,ColIndex, LabelRowChar)

最後のオプションは、列ラベル行の文字(LabelRowChar)を使用します。

テキストトラベルの置換変数値

ワークシートの値を表示するのに加え、テキストラベルに変数値を含めることができます。テキストラベルを作成する基本的な方法では、LabTalkの置換表記を使います。テキストラベルのオブジェクトプロパティダイアログのプログラミングタブで、変数置換を有効にします。変数地はテキストラベルに置換されます。この方法で、文字列と数値変数値を挿入できます。

サンプル 1.文字列の置換

最初のサンプルではテキストラベルに文字列を挿入します。Originが起動しているとき、システムデータを格納するために予約されたいくつかの文字列変数があります。置換表記の詳細リストは、このページを確認してください。

現在のプロジェクトMYPROJECT.OPJ がC:\MYFILES\に保存されているとします。

  1. WYSIWYGテキストラベル法を使って、グラフウィンドウのテキストラベルに次のように入力します。
    このプロジェクトは、%X%Gに保存されます。
  2. 入力モードを抜け、ラベルを選択して、右クリックし、オブジェクトのプログラム制御を選びます。
  3. (%,$)にリンク, 置換レベル1にしてOKをクリックします。
  4. テキストオブジェクトを右クリックして、オブジェクトの表示属性を選択し、ダイアログで逐次解釈のチェックボックスにチェックを付けます(これにより "\" は文字として認識されます)。ラベルは、現在のプロジェクトのドライブとパス名を表示します。
    このプロジェクトは C:\MYFILES\MYPROJECT.OPJに保存されています。

逐次解釈オプションの使用に関する詳細は、「オブジェクトプロパティ」ダイアログボックスでの円記号(バックスラッシュ)の利用をご覧ください。

グラフウィンドウにテキストラベルを追加する場合、前の例で説明した文字列レジスタの使用に限定されません。データセット名、コメント、フィルター条件など、ワークシートメタデータをラベルに挿入するために使用できる@optionsがいくつかあります。たとえば、次のグラフでは、テキスト"Make =を文字列 "%(1、@LF)"と組み合わせて、プロットの作成に使用されたフィルター条件を反映するテキストラベルを作成します。(フィルターがロックされているかどうかに関係なく機能します。)

Text label options @LF.png

サンプル 2.数値の置換

LabTalkを使用して、作業で使用する変数を定義できます。「変数」と「スコープ」の考え方については、このトピックを確認してください。基本的な数値表記を説明するために、次の簡単な例を紹介します。

  1. Originメニューで次のように操作します。ウィンドウ:スクリプトウィンドウ
  2. スクリプトウィンドウの内部で木ルックし、次のように入力します。
    MyVariable=5

    Enterキーを押します。
  3. プロット操作・オブジェクト作成ツールバーの、テキストツールを選択し、グラフやワークシートの余白部分で次のように入力します。
    MyVariable=$(MyVariable)
  4. テキストラベルを右クリックして、オブジェクトのプログラム制御を選択し、ダイアログで、(%,$)にリンク, 置換レベル1にセットしてOKをクリックします。これで、テキストラベルには、MyVariableの数値を表示されます。
    MyVariable=5

利用可能なLabTalkの変数を一覧するには、スクリプトウィンドウを開き(ウィンドウ: スクリプトウィンドウ)、ツール: 変数を選ぶか、コマンドラインに"ed"と入力します。

テキストオブジェクト中での数式の計算

Originは、 標準的なWYSIWYGテキスト編集でのテキスト作成時やオブジェクトプロパティ」ダイアログボックスでのテキストラベル編集時に置換表記をサポートしています。さらに、この表記を使って、数式を解いてテキストラベルに値を表示することができます。

$(expression)

この置換表記では、テキストラベルが再描画される度に数式が解かれ値が表示されます。 ラベルを移動したり、グラフウィンドウを再描画する度に、テキストラベルは再描画されます。

サンプル.テキストラベルでpiを解く

  1. WYSIWYG編集モードで次のテキストを入力するか、「オブジェクトプロパティ」ダイアログボックスに数式を入力して、OKをクリックします。
    The value of X is $(pi^2)
  2. テキストラベルの上で右クリックし、プロパティ... を選択して、オブジェクトのプログラミング制御 タブに移動します。または、ALTキーを押しながら、テキストラベルをダブルクリックします。
  3. (%,$)にリンク, 置換レベル1にしてOKをクリックします。 ラベルは次のようになります。
    The value of X is 9.8696

標準ツールバーのリフレッシュボタン Button Refresh.pngをクリックして、変更を見ます。

Originを起動すると、プログラムフォルダのORGSYS.CNFというテキストファイルが読み込まれます。このファイルで、スクリプトウィンドウ列値の設定ダイアログでの変数定義と同じように、piの値が定義されています。

const pi = 3.141592653589793

もし、通常使用する数学的な定数がある場合、ユーザファイルフォルダのCONST.CNFでそれを定義すれば、Originを起動するたびに利用可能になります(CNFファイルは、メモ帳などのテキストエディタで編集できます)。