置換表記

Originでは定期的にLabTalk変数と式の置換が行われます。置換された文字列の値は、そのステートメントが実際に実行されるまでわからないため、実行時文字列置換と呼ばれます。また、繰り返し行うバッチ操作(インポート、解析、グラフ作成、グラフエクスポート)の基礎にもなります。

置換表記は%または$で始まり、LabTalkスクリプトに限定されません。軸のタイトル、凡例、目盛ラベル、通常のテキスト、列とセルの表示形式、列とセルの数式など、さまざまなウィンドウのラベルでも使用します。置換表記が検出されると、Originはそれを文字列に置き換えます。

置換のタイプ

実行時置換には4つのタイプがあります。

サンプル

次のスクリプトでは、その使用法を示すためにさまざまな置換表記が使用されています。

  •  %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 のさまざまな場所で使用されています。例えば、