ワークブックの基本操作

ワークブックはPageオブジェクトと Windowコマンドで操作できます。また、データ操作用のXファンクションを使うこともできます。これらのツールを使用すると、新しいワークブックの作成、ワークブックの複製、ワークブックをテンプレートとして保存等を行えます。実践的なサンプルは以下の通りです。

新しいワークブックを作成する

newbook Xファンクションを使うと、新しいワークブックを作成できます。このXファンクションの引数として、新たに作成するワークブックのロングネーム、シート数、使用するテンプレート、非表示にするか等を選択できます。

//ロングネーム"MyResultBook"の新しいワークブックを作成
newbook MyResultBook;
 
// 3つのワークシートを持つ新しいワークブックを作成
// ロングネームとショートネームに "MyData" を使用
newbook name:="MyData" sheet:=3 option:=lsname;
 
// 非表示の新しいワークブックを作成
// ワークブックの名前は myBkName$ 変数に格納
newbook hidden:=1 result:=myBkName$;
// ワークブック名を出力
myBkName$ = ;
 
// デフォルトでは、ビルトインテンプレートである"Origin"が使われる
// 新しいワークブックを作成すると特定のテンプレートを使用可能
// XYZ テンプレートを使用して、新しいワークブックを作成
newbook template:=XYZ;

win -tiコマンドはテンプレートファイルから最小化した新しいワークブックを作成できます。

//  FFT テンプレートを使用して新しいワークブックを作成
// ロングネームとショートネームを MyFFT に設定し、最小化
win -ti wks FFT MyFFT;

ワークブックを開く

ワークブックのデータが拡張子ogwのファイルとして保存されている場合、doc -oコマンドで開く事ができます。

// 開くワークブックのパス
string strName$ = system.path.program$;
strName$ += "Samples\Graphing\Automobile Data.ogw";
// ワークブックを開く
doc -o %(strName$);

ワークブックを保存する

Originはワークブックのデータをファイル(拡張子 .ogw)として保存、データなしのテンプレートで保存(拡張子 .otw)、分析を行ったワークブックに関しては分析テンプレート(拡張子 .ogw)として保存できます。

  1. save -iコマンドはアクティブなワークブックをogwファイルとして保存できます。
  2. // 新しいワークブックを作成
    newbook;
    // col(1)に適当なデータを入力
    col(1) = uniform(32);
    // このデータ付きのワークブックをUser Filesフォルダ内にMyData.ogw として保存
    save -i %YMyData.ogw;
  3. template_saveas Xファンクションはワークブックをテンプレートとして保存する時に使用します。
  4. // 3つのシートを持った新しいワークブックを作成
    newbook sheet:=3;
    // このワークブックをテンプレートとしてMy3SheetsBookという名前で
    // User Filesフォルダ(デフォルト)に保存
    template_saveas template:=My3SheetsBook;
  5. 行った分析と共にワークブックを保存するには、save -ikを使用します。
  6. // プロジェクトを作成
    string strOpj$ = system.path.program$ + "Samples\Analysis.opj";
    doc -o %(strOpj$);
    
    // 分析テンプレートとしてワークブックを保存するためワークブックをアクティブに
    win -a Book1J;
    
    // このワークブックを分析テンプレートとして
    // MyAnalysis.ogw というファイル名でUser Filesフォルダに保存
    save -ik %YMyAnalysis.ogw;

ワークブックを閉じる

ワークブックを閉じるには、ワークブックの右上にある閉じるボタンをクリックするだけです。この挙動はwin -caコマンドで実行でき、ダイアログがポップアップしてユーザに削除か非表示を選択するように求めます。

// ワークブックを作成し、名前は変数MyBook$ に格納
newbook result:=MyBook$;
 
// 閉じるボタンをクリックする様子をシミュレートする
win -ca %(MyBook$);

ポップアップをせずにワークブックを閉じて全てのデータを削除するにはwin -cdコマンドを使用できます。この操作は以下にあるワークブックを削除する項目と同じです。

// 閉じるために新しいワークブックを作成
newbook;
 
// ポップアップなしでワークブックを閉じて全てのデータを削除
win -cd %H;

ワークブックの表示と非表示

winコマンドには3つのスイッチ( -ch, -h, -hc) があり、ワークブックの表示と非表示を切り替える事ができます。

// 非表示にするために3つのワークブックを作成
newbook name:=MyBook1 option:=lsname;  // 1番目のワークブック、 MyBook1
newbook name:=MyBook2 option:=lsname;  // 2つ目のワークブック、MyBook2
newbook name:=MyBook3 option:=lsname;  // 3つ目のワークブック、 MyBook3;
 
//  -chを使ってアクティブなワークブック、MyBook3を非表示にする
// プロジェクト・エクスプローラの表示モードは非表示
win -ch 1;
 
// -hc を使用して1番目のワークブック(アクティブではありません)// MyBook1を非表示にする
// プロジェクト・エクスプローラの表示モードは非表示
win -hc 1 MyBook1;
 
// -h を選択して2番目のワークブック(アクティブなワークブック)// MyBook2を非表示にする
// プロジェクト・エクスプローラの表示モードはまだ通常通り
win -h 1;
 
// 実際、 MyBook2 はまだアクティブなワークブックなので、
// 以下のようにすると表示可能
win -h 0;
 
// MyBook1 と MyBook3を表示するには、-hcスイッチを使用して、
// ワークブック名を指定する必要がある
win -hc 0 MyBook1;
win -hc 0 MyBook3;

ワークブックに名前とラベルを付ける

ワークブックにはショートネーム、ロングネーム、コメントがあります。ワークブックの名前(ショートネーム)を変更するにはwin -rコマンドを使用し、pageオブジェクトを使用すると、ワークブックのタイトル(ショートネーム、ロングネーム、両方)表示を含む、ロングネームとコメントを制御できます。

// "Data"と名前がつけた新しいワークブックを作成
// 両方の名前をタイトルに表示
// ショートネームとロングネームは同じです
// ワークブックのタイトルはショートネームのみを表示
newbook name:=Data option:=lsname;
 
// ワークブックの名前を"RawData"に変更
win -r Data RawData;
 
// ロングネームを "FFT Data"に変更
page.longname$ = "FFT Data";
// コメント"1st group data for fft"を追加
page.comments$ = "1st group data for fft";
 
// ワークブックのタイトルにロングネームのみを表示するように変更
page.title = 1;  // 1 = ロングネーム、 2 = ショートネーム、3 = 両方

ワークブックをアクティブにする

ワークブックをアクティブにするには、win -aを使用します。

// 開くプロジェクトのパスを表示
string strOpj$ = system.path.program$;
strOpj$ += "Samples\Curve Fitting\Intro_to_Nonlinear_Curve_Fit_Tool.opj";
// プロジェクトを開く
doc -o %(strOpj$);
 
// プロジェクトの2番目のサブフォルダにあるBook1をアクティブにする
win -a Book1;
 
// ワークブック名を変数に入れる事も可能
// プロジェクトにワークブック Gaussian の名前を入れる
string strGau$ = Gaussian;
// 1番目のサブフォルダにあるGauusianワークブックをアクティブにする
win -a %(strGau$);

ほとんどのOriginコマンドはアクティブウィンドウに対して操作しますので、 win -a コマンドを使って、ワークブックをアクティブにし、スクリプトを実行するとアクティブなワークブックになると思い、実行する事もあるでしょう。これは、簡単なコードで動作しますが、長いスクリプトに対しては、タイミングの問題があるかもしれません。代わりに、 window -o winName {script} を使うことをお勧めします。詳細は、スクリプトが操作するオブジェクトについての注意をご覧下さい。

ワークブックを削除する

ワークブックを削除するにはwin -cコマンドを使用します。このコマンドはポップアップを表示せずに、直接ウィンドウを削除します。

// プロジェクトを開くパス
string strOpj$ = system.path.program$ + "Samples\Curve Fitting\2D Bin and Fit.opj";
// プロジェクトを開く
doc -o %(strOpj$);
// ワークブックBook1 プロジェクトから削除
win -c Book1;
 
// アクティブなワークブックを削除する場合、ワークブック名は無視可能
// または、 %H を使用してワークブック名を参照
win -a MatrixFit1;  // ワークブックMatrixFit1 をアクティブにする
win -c;  // ワークブックを削除
// または、次を使用
// win -c %H;
 
// これは、変数にワークブック名が格納されているワークブックも削除可能
// newbook X-Function を使用して新しいワークブックを作成
// このワークブックの名前は文字列変数 ToDel$ に格納される
newbook result:=ToDel$;
// いま作成したワークブックを削除
win -c %(ToDel$);