置換表記
Originでは定期的にLabTalk変数と式の置換が行われます。置換された文字列の値は、そのステートメントが実際に実行されるまでわからないため、実行時文字列置換と呼ばれます。また、繰り返し行うバッチ操作(インポート、解析、グラフ作成、グラフエクスポート)の基礎にもなります。
置換表記は%または$で始まり、LabTalkスクリプトに限定されません。軸のタイトル、凡例、目盛ラベル、通常のテキスト、列とセルの表示形式、列とセルの数式など、さまざまなウィンドウのラベルでも使用します。置換表記が検出されると、Originはそれを文字列に置き換えます。
置換のタイプ
実行時置換には4つのタイプがあります。
- 文字列レジスタ置換 %A - %Z、など
- %( )文字列置換、%(str$)、%(range)、ワークシート情報、列データセット名、ワークシートセル、凡例などの置換に利用する表記
- $( )置換、数値変数または数式を解釈し、結果を文字列の形式にする
- %n形式の %n マクロとスクリプトの置換、マクロ または スクリプトに渡される引数。
サンプル
次のスクリプトでは、その使用法を示すためにさまざまな置換表記が使用されています。
- %H は現在のウィンドウ名のための予約文字列レジスタ
- %1、 %2 はマクロの引数
- $(ii,##) はゼロパティング付きの2桁の文字列に変換するために使用(例:1は01に変換)
- $(ii) はwks.col$(ii)で使用してワークシート列オブジェクトwks.colnを作成
- %(1, @WS) は最初のプロットのワークシート名で文字列を作成するために使用
新しいプロジェクトを開始して、以下をお試しください。
//2つの引数 %1 および %2のマクロを定義 define import_plot { for(ii = %1; ii <=%2 ; ii++) { if (!isEmpty(col(A))) newsheet; //連結された文字列でfn$文字列変数を作成 string fn$=system.path.program$ + "Samples\curve fitting\step$(ii, ##).dat"; impasc fname:=fn$; delete col(A); if (exist(%H)==2) //現在のウィンドウタイプがワークシートの場合 { //奇数列ごとにXに設定 for( jj = 1 ; jj <= wks.ncols ; jj+=2) { wks.col$(jj).type = 4; //wks.col1 は最初の列を参照 } } } page.active$=1; //最初のシートをアクティブ化 doc -e LB //全シートでループ { //すべての列をXY列属性で散布図としてプロット plotxy iy:=(?,1:end) plot:=202; xb.text$="X"; //X軸タイトルをX yl.text$=%(1, @WS); //Y軸タイトルをワークシート名 } }; //2 つの引数1と 5でマクロを実行。1と 5は%1と%2に渡される import_plot 1 5; //step01.datからstep05.datをインポートし、すべてのデータをプロット
冒頭で述べたように、このような置換表記は LabTalkスクリプトでだけでなく、Origin のさまざまな場所で使用されています。例えば、
- 軸タイトルなどのテキストラベルの編集テキストラベルの置換を参照してください。
- 凡例の編集凡例の置換表記を参照してください。
- 範囲変数の範囲文字列を構築します。範囲表記を参照してください。