数値変数としてはアルファベットで始まりピリオドを含まない変数名が使える(大文字と小文字は区別されない)。 ただし以下に挙げるシステム変数は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, i) | ワークシートWKSの i 番目のコラムのデータセット名 |
%(WKS, i, j) | ワークシートWKSの i 番目の column、j番目の row のセル |
(例)
data1_a | ワークシートdata1のコラムaのデータセット |
data1_a[10] | ワークシートdata1のコラムaの10番目のセル |
col(b) | 現在のワークシートのコラムbのデータセット |
col(b)[20] | 現在のワークシートのコラムbの20番目のセル |
%K[30] | 文字列変数%Kに格納された名前で表されるデータセットの30番目のセル |
%(data1,2,5) | ワークシートdata1の2番目のコラムの5番目のセル |
%(data1,2)[5] | 同上 |
a=10
%A=''John'' (double quotationは省略してもよい。)
WKS_COL=代入するデータセットまたは配列とする。代入先のデータセット名が文字列変数に格納されているときはその変数名に括弧をつけて
(%A)=代入するデータセットまたは配列としなくてはならない。さもなくば、単に文字列の代入になってしまう。
%(WKS,i)=data_Aや
col(A)=col(B)のように、データセット名を返す関数の戻り値に対して代入することもできる。この場合は括弧は必要ない。
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 = data1_b+5; ワークシートdata1のコラムbのすべてのセルの内容に5を足してコラムaにコピーする。 data1_a = 0; ワークシートdata1のコラムaの全てのセルに0を代入する。| data1_c=data1_a*data1_b; ワークシートdata1のコラムaとコラムbの内容の積をコラムcに書き込む。 col(B)=col(A) * 2; 現在のワークシートのコラムBにコラムAの内容を2倍にして代入する。
%(i,@L) | 現在のワークシートのi番目のコラムのラベル名 |
%(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列の数を返す。 |
@# | ワークシート全体の列の数 |
property | 戻り値 |
nCols | 総column数 |
nRows | 総row数 |
maxRows | 値のある最大のrow番号 |
wks.col[n].propertyの形でアクセスする([n]はコラム番号)。
n | type |
200 | line |
201 | scatter |
202 | line+symbol |
$(x,*5) | xの値を有効桁5桁で文字列に変換 |
$(x,.3) | xの値を小数点以下3桁で文字列に変換 |
$(x,fmt) | xの値をC言語のフォーマットfmtを用いて文字列に変換 |
$(x,Efmt) | xの値を工業表示文字列に変換 |
$(x,Sfmt) | xの値を科学表示で文字列に変換 |
%[ ]関数によって文字列の操作ができる。
%[string, 'ch'] | 文字列の先頭から最初に現れる文字chの前までを抜き出す。 |
%[string, >'ch'] | 最初に現れる文字chの次から文字列の最後までを抜き出す。 |
%[string, n] | 先頭のn文字を抜き出す。 |
%[string, m:n] | m文字目からn文字目までを抜き出す。 |
%[string, #n] | n番目のトークンを返す。 |
%[string] | 文字列の長さを返す。 |
戻値 | 意味 |
0 | 存在しない |
1 | dataset |
2 | worksheet |
3 | graph window |
4 | variable |
5 | matrix |
6 | macro |
7 | tool |
9 | notes window |
dateset名に関数のように丸括弧をつけて、
data1_A(x)
のようにすると、data1_Aに結び付いているXデータセットからxを探し、対応するdata1_Aのセルの値を返す。Xデータセットにxが見つからない場合は最も近い2つのセルから直線で内挿したものを返す。
Originの内部はすべてオブジェクトによって構築されている。これらのオブジェクトを直接操作することによって、より細かな制御を行うことができる。
オブジェクトの操作にはMethod(操作)、Set(値の設定)、Read(値の読み出し)があり、
Methodを実行する場合は
objName.Method( param )
とする。ただしobjNameやMethodは実際のオブジェクト名やメソッド名に置き換わる。
オブジェクトのプロパティーに値を設定する場合は
objName.Property=value (数値の場合) objName.Property$=string (文字列の場合)
とする。値の読み出しも同様である。
value=objName.Property (数値の場合) %K=objName.Property$ (文字列の場合)
Originで扱っているオブジェクトにはwindowオブジェクト、utilityオブジェクト、外部オブジェクトの3種類がある。
ワークシートやグラフなどの画面上のwindowを操作するオブジェクト。 winName!objName.propertyの形でアクセスする。winName!を省略すると現在アクティブなwindowについて操作が行われる。
オブジェクト | 役割 |
layer[n] | [n]番目のレイヤーを操作する |
page | グラフやワークシートのベースになっているWindowを操作する |
wks | ワークシートを操作する |
layerオブジェクトはサブオブジェクトとして、[axis]オブジェクトを持ち、wksオブジェクトはサブオブジェクトとしてcol, export, importを持つ。
layer.[axis] | 役割 |
layer.X | bottom X axisを操作する |
layer.X2 | top X axisを操作する |
layer.Y | left Y axisを操作する |
layer.Y2 | right Y axisを操作する |
サブオブジェクト | 役割 |
wks.col[n] | ワークシートの[n]番目のコラムを操作する |
wks.export | ワークシートをファイルにエクスポートする際の設定 |
wks.import | ファイルからワークシートにインポートする際の設定 |
さらにlayer.[axis]オブジェクトはサブオブジェクトとしてbreak, grid, labelを持つ。
特定のwindowとは結び付かないOriginのプロパティーを操作する。
オブジェクト | 役割 |
break | ダイアログボックスを操作する |
copy | copyコマンドと関係している |
doc | プロジェクト情報を取得する |
draw | ??? |
excel | excelマクロを実行する |
fdlog | ファイルダイアログを操作する |
getpts | getptsコマンドを操作する |
ini | INIファイルを読み書きする |
integ | integrateコマンドの結果を取得する |
limit | limitコマンドの結果を取得する |
lr | lrコマンド(線形回帰分析)の結果を取得する |
macro | マクロのパラメータの数を取得する |
menu | メニューを操作する |
rt | real time data blockを扱う |
run | スクリプトを実行する |
sort | コラムやワークシートをソートする |
sum | 統計解析やコマンドの結果を取得する |
system | OPTION.CNFに書かれているような設定を操作する。多くのサブオブジェクトを持つ。 |
type | スクリプトウインドウを操作する |
外部DLLに存在するオブジェクト
オブジェクト | 役割 |
curve | データプロットに対して平滑化や微分などの演算を行う |
fft | フーリエ変換を操作する |
mat | 行列ウインドウを操作する |
nlsf | 非線型最小二乗法を操作する |
stat | 統計解析を操作する |