アルファベットで始まりピリオドを含まない変数名が使える(大文字と小文字は区別される)。 ただし以下に挙げるシステム変数はOriginが内部で使っているので、不用意に使うと動作が不安定になる。 その他の数値変数は自由に使用してよい。
X, Y, Z | Data Reader や Data Selector での現在の座標 |
X1, X2, Y1, Y2 | 現在 active な layer のグラフの表示範囲 |
Echo | エラーメッセージの表示のしかた |
I | 内部のループ変数。主に行や列を指定する |
SELC1, SELC2, SELR1, SELR2 | 現在のワークシートの選択範囲 |
COUNT | 内部で使用する計数変数 |
%がついたアルファベット1文字でユーザー変数は%K〜%Tと%Wのみ。残りはシステム変数。各文字列変数は105文字(%Zは8192文字)までの文字列を記憶できる。
%A | getfilenameの返り値 |
%B | getstringの戻り値 |
%C | 現在activeなdatasetの名前(WKS_COL) |
%D | 最後にsetコマンドでactiveにされたdatasetの名前(WKS_COL) |
%E | 最後に選択されたワークシートのwindow名 |
%F | 現在fittingしているdataset(WKS_COL) |
%G | 現在のproject名 |
%H | 現在activeなwindow名 |
%I | 現在のbaselinedataset? |
%J | 現在のDDEアイテム |
%K〜%T | ユーザー変数 |
%U | fittingに関するメッセージ |
%V | 現在のfittingのモデル名 |
%W | ユーザー変数 |
%X | 現在のprojectのパス名 |
%Y | ORIGINプログラムの実行ファイル名 |
%Z | 内部で使用する一時的な文字変数 |
データセットとはワークシートの一つのcolumnのことであり、1次元配列を持つオブジェクトである。 データセットは通常WKS_COLという形で指定される。ただし、WKSはワークシート名、COLはcolumn名を表す。 データセットWKS_COLのi番目のセルはWKS_COL[i]というふうに指定される。
data1_a = {1,2,3,4,5,6} ワークシートdata1のコラムaに1,2,3,4,5,6を代入する。 data1_a[10] = 5 ワークシートdata1のコラムaの10番目のセルに5を代入する。 data1_a = data1_b ワークシートdata1のコラムbの内容を全てコラムaにコピーする。 data1_a = 0 ワークシートdata1のコラムaの全てのセルに0を代入する。 data1_c=data1_a*data1_b ワークシートdata1のコラムaとコラムbの内容の積をコラムcに書き込む。
あるいは関数%( )を使ってもデータセットやセルを指定できる。
%(WKS, i) | ワークシートWKSの i 番目のコラムのデータセット名 |
%(WKS, i, j) | ワークシートWKSの i 番目の column、j番目の row の値 |
%(WKS, @option, i) | ワークシートWKSの i 番目のcolumnのoptionに関する情報 |
option | 戻り値 |
type | i 列の種類 ( 1: Y列 2: 無属性 3 : エラーバー列 4: X列 ) |
colname | i 列の名前 |
data | i 列のデータセット名 |
Xn | i 列に対応するX列の名前 |
X | ワークシート全体のX列の数 |
Y- | i 列より左側(i 列を含む)の最初のY列の番号 |
Y+ | i 列より右側(i 列を含む)の最初のY列の番号 |
Y# | i=1の場合、ワークシート全体のY列の数を返し、i=2の場合は選択領域のY列の数を返す。 |
# | ワークシート全体の列の数 |
a=10など。
%A=''John'' double quotationはなくてもよい。
データセットdatasetにデータセットまたは配列を代入するときは dataset名=代入するデータセットまたは配列 (%A)=代入するデータセットまたは配列 などとする。 %(WKS,i)=data_Aやcol(A)=col(B)のように、データセット名を返す関数の戻り値に対して代入することもできる。
* loop( variable, start, end ){ script }; 整数 variable を start から end まで変えながらscriptを実行する。 * for( exp1; exp2; exp3 ){ script }; 使い方はc言語と同じ * repeat num { script }; num 回 script を実行する。 * break option arg; optionもargもない場合は現在のループを脱出する。 argに1を指定すると現在のスクリプトを終了する。 optionをつけることによってメッセージの表示や実行の選択が可能。 * continue; for文やloop文において次の繰り返しに飛ぶ。
* if ( condition ) { script1 } else { script2 }; 使い方はc言語と同じ。else以下は省略できる。 * switch( argument ){ case1: script1; case2 : script2; ... }; 使い方はc言語と同じ。
WKS!wks.propertyの形でアクセスする。WKS!を省略すると現在activeなワークシートが対象になる。 property cCols 総column数 nRows 総row数 maxRows 値のある最大のrow番号
* type スクリプトウインドウに文字列を表示する。数値変数の内容を表示したい場合は、 関数 $( ) によって文字列に変換する必要がある。 * getnumber ダイアログを表示して数値の入力を行う。 * getstring ダイアログを表示して文字列の入力を行う。
* create WKS_COL -c n 列数nのXYデータセットを作る。値は全て0。Xデータの名前はWKS_Aとなる。 * copy dataset1 dataset2 dataset1の内容をdataset2にコピーする。
* layer -in dataset 現在のレイヤーにプロットを追加する。プロットタイプはnで指定する。(worksheetコマンドを参照) * draw {x1,y1,x2,y2} グラフに直線や点線などを描画する。 * worksheet -p n アクティブなワークシートの選択領域をプロットする。nはプロットのタイプを指定する。 n type 200 line 201 scatter 202 line+symbol
* create name -w n c1 c2 column名c1,c2, row数n を持つ名前nameのワークシートを作る * worksheet -d name 現在アクティブなワークシートの複製をnameという名前で作成する。 * worksheet -s c1 r1 c2 r2 アクティブなワークシートのc1 r1 c2 r2で指定される領域を選択する。c1とc2がゼロの場合は 全てのcolumnが対象となり、r1とr2がゼロの場合は全てのrowが対象となる。
* col(COL) 現在activeなワークシートのcolumn COL のdataset名(WKS_COL)を返す * wcol(i) 現在activeなワークシートのi番目の column のdataset名(WKS_COL)を返す * %[string, arg] 文字列の一部分を抜きだす。 %[string,'ch'] 文字列の先頭から最初に現れる文字chの前まで。 %[string,'ch'] 最初に現れる文字chの次から文字列の最後まで %[string,n] 先頭のn文字 %[string,m:n] m文字目からn文字目まで %[string,#n] n番目のトークン %[string] 文字列の長さ * $(num) 数値などを文字列に変換する。formatも指定可能。
* exist(name) 名前nameをもつオブジェクトが存在すればそのオブジェクトの型を番号で返す。 0 存在しない 1 dataset 2 worksheet 3 graph window 4 variable 5 matrix 6 macro 7 tool 9 notes window * その他、sin, cos, expなどの数学関数はほとんど使える。
datasetに代入できる配列を返す関数
* data( v, v, inc ) vからvまでincステップの配列を作る。 incを省略するとステップは1になる。 * { v, v, , v} 配列を実際の値を使って作る。 * Fit(dataset) 直前のフィッティングの結果を用いて、datasetをX値とした配列を作る。