Excelと一緒に操作する

Originは、Originワークスペース内で直接Excelワークブックを使用できます。Excel ワークブックは、プロジェクト内に保存することや、外部Excelファイル(*.xls, *.xlsx)へのリンクとして保存することができます。Origin内で開いた外部のExcelワークブックを内部用ファイルに変換したり、Origin内で作成したExcelワークブックは外部のExcelファイルに保存することができます。

Excelワークブックを開く

内部Excelワークブック

Originで新しいExcelワークブックを作成するには

window -tx;

タイトルバーには、ExcelワークブックがOriginプロジェクトファイル内に保存されることを示す、 [内部] というテキストがあります。

外部Excelワークブック

外部のExcelファイルを開くには

document -append D:\Test1.xls;

タイトルバーには、ExcelファイルがOriginプロジェクトファイルの外部に保存されることを示す、Excelファイルのパスとファイル名があります。

Excelワークブックを保存

内部Excelワークブック

内部Excelワークブックは、Originプロジェクトで自動的に保存できますが、この内部Excelワークブックを外部ファイルとして保存すると、リンクされた外部ファイルになります。

// Excelウィンドウがアクティブである必要があり、win -o で一時的にアクティブにできる
window -o Book5 {
    // ファイルパスと拡張子.xlsが必要
    save -i D:\Test2.xls;
}

外部Excelワークブック

元になるファイルをディスクに残しながら新しいファイルとリンクを作成して、外部Excelファイルを新しい場所に再保存することができます。

// Excelワークブックがアクティブである前提
// %X は、開いているOriginプロジェクトファイルのパス
save -i %XNewBook.xls;

Excelワークブックの変更時にOriginを更新

Excelワークブックにデータを入力、又は貼り付けたとき、set -ui.により、Originを更新できます。例えば

//ファイル: 新規:Excelメニューを選択
//Excelワークシートの列A行1に123を入力
set Book2 -ui; // Origin更新
col(A)[1]=; //列A行1の値を取得

OriginのGUIでは、タイトルバーまたはExcelワークブックを右クリックし、コンテキストメニューでOriginを更新...を選択してOriginを更新することもできます。

Excelワークブックに接続

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コマンドも参照してください。

Excelのマクロを実行

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オブジェクトも参照してください。

Visual Basic関数を呼び出す

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オブジェクトも参照してください。