MATLABからEx​celのマクロを動作​させるにはどのように​しますか?

20 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2010 年 6 月 25 日
MATLABからExcelのマクロを動作させる方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2010 年 6 月 25 日
MATLABにてACTXSERVERコマンドを使用してExcelをCOMサーバとして起動し、マクロを実行させる方法があります。
たとえば'myFile.xls'ファイルが内に'Macro1'が含まれている場合、以下のコマンドでExcelファイルを開いてマクロを実行することができます。
% オブジェクトの生成
ExcelApp = actxserver('Excel.Application');
% Excel画面の表示
ExcelApp.Visible = 1;
% カレントフォルダにあるファイルを開く
ExcelApp.Workbooks.Open(fullfile(pwd,'\myFile.xls'));
% Macro1の実行。マクロは"ThisWorkBook"に定義され、1つの引数が必要です。
ExcelApp.Run('ThisWorkBook.Macro1', parameter1);
% Macro2の実行。マクロは"Sheet1"に定義され、2つの引数が必要です。
ExcelApp.Run('Sheet1.Macro2', parameter1, parameter2);
% Macro3の実行。マクロは"Module1"モジュールに定義され、引数は不要です。
retVal = ExcelApp.Run('Macro3');
% Excelを終了し、オブジェクトを消去します。
ExcelApp.Quit;
ExcelApp.release;
以下の点にご注意ください。
- シートに定義されているマクロについては、ThisWorkBookまたはモジュールはメソッドによっては0またはそれ以上の引数によりコールされます。
- モジュール内で(subsではなく)functionのみ定義されているのみ戻り値を得ることができます。シートやThisWorkBookに定義されている関数の戻り値はMATLABでは"NaN"、VBまたはVBAでは"Empty"となります。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB の COM オブジェクト についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!