Originは、Originワークスペース内で直接Excelワークブックを使用できます。Excel ワークブックは、プロジェクト内に保存することや、外部Excelファイル(*.xls, *.xlsx)へのリンクとして保存することができます。Origin内で開いた外部のExcelワークブックを内部用ファイルに変換したり、Origin内で作成したExcelワークブックは外部のExcelファイルに保存することができます。
Originで新しいExcelワークブックを作成するには
window -tx;
タイトルバーには、ExcelワークブックがOriginプロジェクトファイル内に保存されることを示す、 [内部] というテキストがあります。
外部のExcelファイルを開くには
document -append D:\Test1.xls;
タイトルバーには、ExcelファイルがOriginプロジェクトファイルの外部に保存されることを示す、Excelファイルのパスとファイル名があります。
内部Excelワークブックは、Originプロジェクトで自動的に保存できますが、この内部Excelワークブックを外部ファイルとして保存すると、リンクされた外部ファイルになります。
// Excelウィンドウがアクティブである必要があり、win -o で一時的にアクティブにできる window -o Book5 { // ファイルパスと拡張子.xlsが必要 save -i D:\Test2.xls; }
元になるファイルをディスクに残しながら新しいファイルとリンクを作成して、外部Excelファイルを新しい場所に再保存することができます。
// Excelワークブックがアクティブである前提 // %X は、開いているOriginプロジェクトファイルのパス save -i %XNewBook.xls;
Excelワークブックにデータを入力、又は貼り付けたとき、set -ui
.により、Originを更新できます。例えば
//ファイル: 新規:Excelメニューを選択 //Excelワークシートの列A行1に123を入力 set Book2 -ui; // Origin更新 col(A)[1]=; //列A行1の値を取得
OriginのGUIでは、タイトルバーまたはExcelワークブックを右クリックし、コンテキストメニューでOriginを更新...を選択してOriginを更新することもできます。 |
ExcelファイルをOriginプロジェクトにリンクする場合、ddeコマンドでMicrosoft DDEプロトコルを使用できます。例えば
// 次のサンプルを実行する前に、Excelブックを手動で起動するかrun -eコマンドを使用 dde -c Excel|[Test1.xls]Sheet1 id; //Excelワークシート[Test1.xls]Sheet1に接続 if(id>=0) //接続されたか確認 { // Excel ワークシートの列A~Fおよび行12~25でデータを // Origin のワークシート列1行1以降に送る dde -rc id R2C1:R11C2 [Book1]Sheet1!R1C1; } dde -d id; //切断
ddeコマンドも参照してください。
Originは、Excelオブジェクトメソッドexcel.run
を使用して、OriginからExcelマクロを実行します。
//SheetNameは、マクロを含むExcelワークシートの名前 //引数は5つ以下 excel.run(SheetName.MacroName, Arg1, Arg2, Arg3..., Arg5);
または
excel.run(ModuleName.MacroName,Arg1, Arg2, Arg3..., Arg5);
Excelマクロを実行するための範囲を選択してアクティブにする必要がある場合、excel.runrange
を試してください。例えば
//アクティブなExcelブックのSheet2をアクティブにし、 //列A~Fおよび行12~25を選択 excel.runRange(Sheet2,A12:F25);
excelオブジェクトも参照してください。
OriginのExcelオブジェクトは、Visual Basicアプリケーション機能を呼び出すためのスクリプトアクセスも提供します。OriginでExcelマクロを実行するのと同じように、Visual Basic関数を呼び出すことができます。
Excel.Run(FunctionName, Arg1, Arg2,..., Arg5)
例えば、次のようなVisual Basic関数がある場合を考えます。
Sub Hello() MsgBox ("Hello, world!") End Sub
この関数を呼び出すには以下のようにします。
//上記の機能を含むワークブックをアクティブにする excel.run(Hello); //メッセージボックスが表示
excelオブジェクトも参照してください。