ワークブックは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)として保存できます。
// 新しいワークブックを作成 newbook; // col(1)に適当なデータを入力 col(1) = uniform(32); // このデータ付きのワークブックをUser Filesフォルダ内にMyData.ogw として保存 save -i %YMyData.ogw;
// 3つのシートを持った新しいワークブックを作成 newbook sheet:=3; // このワークブックをテンプレートとしてMy3SheetsBookという名前で // User Filesフォルダ(デフォルト)に保存 template_saveas template:=My3SheetsBook;
// プロジェクトを作成 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$);