スクリプトの実行

次のセクションにはLabTalkスクリプトを実行したり、保存する様々な方法をまとめています。 最初にスクリプトとスクリプトが動作するオブジェクトとの関係に注意することが重要です。

このセクションでは以下の項目について説明します

デフォルト

ワークブックやグラフページなどのOriginオブジェクトを操作するとき、スクリプトは常にデフォルトでアクティブウィンドウに対して行われます。ウィンドウがアクティブでない場合、 win -a を使ってアクティブにします。

win -a book2;		// book2をアクティブにする
col(b) = {1:10};	// book2の列Bに1から10を入力

しかし、win -a を使ったウィンドウのアクティブ化は、確実でない場合があります。スクリプトの実行シーケンスで、アクティブウィンドウまたはレイヤを切り替えることは、動作が遅くなり、正確でない結果を導く可能性があります。

スクリプトを括弧で囲み常に win -o winName {script}を使うことが好ましい方法です。こうすると、Originは指定したウィンドウを一時的にアクティブウィンドウ(内部的)としてセットし、そのウィンドウ以外のウィンドウを排除して、括弧内のスクリプトを実行します。例えば、次のコードは新しいプロジェクトを作成し、デフォルトのブックにいくつかのデータを入力してからプロットし、そして、そのブックに戻り、新しいシートを追加して、2番目のシートで2番目のプロットを作成するものです。

doc -s;doc -n;//デフォルトワークシートを含む、新しいプロジェクト
string bk$=%H;//ブックのショートネームを保存
//データを入力してプロットを作成
wks.ncols=2;col(1)=data(1,10);col(2)=normal(10);
plotxy (1,2) o:=<new>;
//新たに作成したグラフがアクティブなウィンドウになる
//元のワークブックでいくつかスクリプトを実行したい
win -o bk$ {
  newsheet xy:="XYY";
  col(1)=data(0,1,0.1);col(2)=col(1)*2;col(3)=col(1)*3;
  plotxy (1,2:3) plot:=200 o:=<new>;
}

win -oだけは文字列変数を使用できるLabTalkコマンドです。上記のように、記述する必要はありません。

win -o %(bk$)

この特定のコマンドは頻繁に使われ、Origin8.0で文字列変数を利用できるよう、修正されました。文字列変数がLabTalkコマンドへの引数として使われる場合、すべての場所で、%( )置換表記を使う必要があります。

LabTalkスクリプトを実行する場所

Originにはスクリプトを保存したり、実行する場所がいくつもあり、それらは同じように操作できるわけではありません。 次のサブセクションでは、よく使用される順番に配置しています。

最初の2つ、(1) スクリプトウィンドウおよびコマンドウィンドウからスクリプトを実行する (2) ファイルからスクリプトを実行するは、スクリプトを記述する方には、他の場所よりとてもよく使われます。 まず、この章の2つのサブセクションを読むことをお勧めします。 その他については、必要に応じて読無と良いでしょう。