Originは分割、統合、複製など、LabTalkスクリプトを使用してブックを操作するための機能を提供しています。
アクティブなワークブックを複製するために、win -d コマンドを使用します。複製されたワークブックの名前指定が可能で、新たなワークブックは複製後アクティブになります。コマンド win -da は同じように動作しますが、複製後もアクティブなウィンドウは変わりません。
// プロジェクトを開く string strOpj$ = system.path.program$; strOpj$ += "Samples\LabTalk Script Examples\Loop_wks.opj"; doc -o %(strOpj$); // ワークブックS2Freq1をアクティブにする win -a S2Freq1; // このワークブックを複製して、名前を"MyCopy"とし、 // これをアクティブウィンドウにする win -d MyCopy; // ワークブックMyCopyを複製し、名前を"MyCopy2"にする // アクティブウィンドウはMyCopyのままにする win -da MyCopy2;
複数のワークブックをひとつのワークブックに統合するには、Xファンクションmerge_bookを使用します。
// プロジェクトを開く string strOpj$ = system.path.program$; strOpj$ += "Samples\LabTalk Script Examples\Loop_wks.opj"; doc -o %(strOpj$); // Sample1フォルダをアクティブにする pe_cd /Sample1; // 2つのサブフォルダ内にある、2つのワークブック(S1Freq1 と S1Freq2)を統合する // 統合されたブック内のワークシート名には、元のワークブック名を使用する merge_book fld:=recursive rename:=sname; // Sample2フォルダをアクティブにする pe_cd /Sample2; // 2つのサブフォルダ内にある、2つのワークブック(S2Freq1 と S2Freq2)を統合する // 統合されたブック内のワークシート名には、元のワークブック名を使用する merge_book fld:=recursive rename:=sname; // rootフォルダをアクティブにする pe_cd /; // 上記スクリプトで作成された2つのワークブックは // それぞれ"mergebook"という名前をはじめに持つ // これら2つのワークブックを統合し、1つのワークブックにまとめる // 最終的得られるワークシートには、 // 元のワークシート名を付ける merge_book fld:=project single:=0 match:=wkbshort key:="mergebook*" rename:=wksname;
上記のサンプルでは複数のワークブックを統合して一つにまとめましたが、ワークブックを分割し、単一ワークシートを持つ複数のブックにすることができます。この場合には、Xファンクションwsplit_bookを使用します。
// プロジェクトを開く string strOpj$ = system.path.program$; strOpj$ += "Samples\COM Server and Client\Basic Stats on Data.opj"; doc -o %(strOpj$); // アクティブなワークブック、RawDataには3つのワークシートがあり、 // このブックを分割し、3つのブックを作成する // それぞれのワークブックには、元のワークブックからワークシートを1つずつ格納する wsplit_book fld:=active;