Excelと一緒に操作する
Working-with-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オブジェクトも参照してください。
|