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

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

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.OPJC:\MYFILES\に保存されているとします。

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

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

グラフウィンドウにテキストラベルを追加する場合、前の例で説明した文字列レジスタの使用に限定されません。データセット名、コメント、フィルター条件など、ワークシートメタデータをラベルに挿入するために使用できる@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ファイルは、メモ帳などのテキストエディタで編集できます)。

テキストラベルに日時を追加

日時情報をテキストラベルとしてグラフやワークシートなどに追加するには、いくつかの方法があります。

静的テキストオブジェクトとして

プロット操作・オブジェクト作成ツールバーの日時ボタンButton Date Time.pngをクリックすると、日付と時刻のスタンプをグラフに追加できます。

これは静的なテキストオブジェクトであり、日時ボタンButton Date Time.pngをもう一度クリックしない限り、現在の日付/時刻が保持されることに注意してください。

詳細は、このページをご覧ください。

動的テキストオブジェクトとして

現在の日時をテキストラベルに組み込む方法はいくつかあります。日時ボタンとは異なり、このようなテキストラベルはグラフテンプレートと共に保存でき、ウィンドウ作成の日付と時刻をグラフにスタンプするために使用できます。次の方法のいずれかを使用して作成されたテキストオブジェクトでテンプレートを保存すると、現在の日時のリテラルテキストではなく、ラベルの基になるコードが保存されることに注意してください。

基本的なプロセスはこのようになります。

  1. 以下で説明する日時テキストオブジェクトの追加など、グラフをカスタマイズします。
  2. ユーザファイルフォルダカスタムテンプレートを保存します。
  3. プロットするデータを選択し、作図>マイ テンプレートからカスタムテンプレートを選択します。

LabTalk置換を使用して日時のラベルを追加

@D または @T 構文を使用して、日時ラベルをグラフに追加します。

  1. テキストツールButton Text Tool.pngを選択し、グラフをクリックして、カーソル位置に次のように入力します。
    $(@D, DMM-dd-yyyy HH:mm:ss)
    	
  2. 入力したらテキストオブジェクトをクリックして編集モードを終了します。
  3. テキストオブジェクトを選択し、ミニツールバーの置換へのリンクボタンをクリックします。
    OH date time text label DT syntax.png
Note: ここで使用されている特定の日時形式は、あくまで一例です。@D@T のフォーマットについて詳しくは、LabTalkリファレンスのこのセクションを参照してください。

ラベルでLabTalkスクリプトを実行して日時を追加する

この方法は、短いスクリプト行をテキストオブジェクトに追加することで機能します。そのスクリプトはウィンドウオープンでトリガーされるため、グラフが作成された日時でグラフがスタンプされます。

  1. テキストツールButton Text Tool.pngを選択し、グラフをクリックして、カーソル位置に次のように入力します。
    %(dt$)
    	
  2. 入力したらテキストオブジェクトをクリックして編集モードを終了します。
  3. テキストオブジェクト上で右クリックして、プロパティを選択します。
  4. ダイアログでプログラミングタブをクリックし、次の設定を再作成します (テキストタブも次のようになります)。
    OH date time text label string var script.png
  5. OK をクリックして、ダイアログを閉じ、現在の日時を与えます。
Note: ここで使用されているOrigin日時関数と日時形式の組み合わせは、ほんの一例です。