Power Automate Desktopでは、エクセルのマクロを実行させることができます。
VBAを使った関数を実行させることができるので、マクロ実行を自動化させたい場合に非常に便利です。
エクセルのマクロを実行するには?
マクロの作成
エクセルのマクロをまずは作成します。
サンプルとして、VBAを使って関数をワークブック内に作ります。
テスト用なので、単純にセルをコピーしてペーストするだけのものです。
フローの作成
ファイルの起動
まずエクセルでファイルを起動させます。
アクションで「Excel>Excelの起動」でファイル名を指定しておきます。
詳細でマクロの読み込みがあるので一応チェックしておきます。
マクロの実行
アクションで「Excel>詳細>Excelマクロの実行」を追加。マクロ名を指定します。
今回はワークブック内のVBA関数なので「ThisWorkbook.doTest」のように記述します。
保存
マクロでセルを上書きしていますので、ファイルを保存します。
アクションで「Excel>Excelの保存」を追加します。
終了
最後にエクセルを閉じます。
フローの実行
手順としては以下のように、エクセルの起動→マクロ実行→ファイル保存→エクセル終了となります。
実行してマクロで変更されたファイルを確認できれば成功です。
Power Automate Desktopからマクロを実行させるメリットは?
既にエクセルファイルにマクロが仕組まれていれば、それを指定するだけで実行できるほうが楽です。
また「セルに色を付ける」などはVBAのほうからでないと設定できません。
PADでエクセルマクロの不具合
マクロが動かない?
そもそもマクロが正常に動作しない場合にはPower Automate Desktopのほうではどうしようもありません。先にVBAの動作などを調べておきましょう。
マクロを指定する場合には、「Excel>Excelの起動」のアクションで、「アドインとマクロを読み込む」をチェックしておきましょう。
マクロが見つからない?
doTestという関数でマクロを実行しようとしたら、なかなか認識されずに苦労しました。
最終的には「ThisWorkbook.doTest」という名前にしたら実行できました。関数の呼び出し方がしっかり一致しないと認識されませんので注意しましょう。
また「Sub Workbook_Open()」のように起動時にマクロを実行するように書いておけば、起動時させることでマクロが実行できます。指定したマクロが実行されない場合は、この方法で動作確認をしてみるといいかもしれません。