MATLABからExcelのマクロを動作させるにはどのようにしますか?
20 ビュー (過去 30 日間)
古いコメントを表示
MATLABからExcelのマクロを動作させる方法を教えてください。
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で MATLAB の COM オブジェクト についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!