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

18 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 25 Jun 2010
MATLABからExcelのマクロを動作させる方法を教えてください。

Accepted Answer

MathWorks Support Team
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"となります。

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!