Power Automate DesktopでExcelマクロとパラメータをやり取りする方法。
やること
Power Automate Desktop(以下:PAD)を使って、Excelマクロに2つの引数を渡してマクロを実行して、PADでマクロの戻り値を受け取ります。
PADでは直接マクロの戻り値を受け取ることができません。PADに戻したい値をExcelに記述し、PADでそこを参照するようにして結果の値を受け取るようにしました。
1マクロのコード
Sub main(num1 As Integer, num2 As Integer)
With ThisWorkbook.Worksheets(1)
.Range("A1").Value = num1 + num2
End With
End Sub
2つの引数を受け取って、足し算します。結果をA1セルに出力する。というコードです。
2フローの作成
▼「Excelの起動」アクションを追加します。
▼「Excelの起動」アクションのパラメータを入力します。
①次のドキュメントを開くを選択します。
②開くExcelファイルのパスを入力します。
③書き込みする場合は、読み取り専用のチェックをオフにします。
④保存をクリックします。
▼「Excelマクロの実行」アクションを追加します。
▼「Excelマクロの実行」アクションのパラメータを入力します。
「Excelインスタンス」に%ExcelInstance%と入力します。
「マクロ」に「マクロ名;引数1;引数2」と入力します。
(引数が複数ある場合はセミコロンで区切って引数を渡します。)
今回はMainというプロシージャを実行し、任意の数字を2つ[200と300]を渡すという意味で、Main;200;300と入力しました。
▼「Excelワークシートから読み取り」アクションを実行する。
マクロによってA1セルに実行結果が出力されているはずなので、このアクションでA1セルの値を読み取りに行きます。生成される変数は%ExcelData%です。
▼「Excelワークシートから読み取り」アクションのパラメータを入力します。
①Excelインスタンス:%ExcelInstance%を入力します。
②取得:単一セルの値を選択します。
③先頭列:1
④先頭行:1
▼Excelを閉じるアクションを追加します。
▼「メッセージを表示」アクションを追加します。
マクロの実行結果をポップアップメッセージで表示します。
▼「メッセージを表示」アクションのパラメータを入力します。
「表示するメッセージ」に%ExcelData%を指定します。
これは「ワークシートから読み取り」アクションで生成される変数です。
3実行結果
▼実行結果がポップアップで出力されました。
4まとめ
以上で、PADでマクロにパラメータを受け渡す方法の例をご紹介しました。参考になれば嬉しいです。わたしのブログで他にもPADレシピ紹介しています。良かったら見てね。
よろしければサポートお願い致します。頂いたサポートは今後の活動費として大切に使用させて頂きます!