MATLABからExcelのマクロを動作させるにはどのようにしますか?
18 views (last 30 days)
Show older comments
MATLABからExcelのマクロを動作させる方法を教えてください。
Accepted Answer
MathWorks Support Team
on 25 Jun 2010
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 Comments
More Answers (0)
See Also
Categories
Find more on MATLAB の COM オブジェクト in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!