見出し画像

Power Automate DesktopでExcelマクロとパラメータをやり取りする方法。

やること

画像6

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の起動」アクションを追加します。

画像1


▼「Excelの起動」アクションのパラメータを入力します。

画像2

①次のドキュメントを開くを選択します。
②開くExcelファイルのパスを入力します。
③書き込みする場合は、読み取り専用のチェックをオフにします。
④保存をクリックします。


▼「Excelマクロの実行」アクションを追加します。

画像3


▼「Excelマクロの実行」アクションのパラメータを入力します。

画像4

「Excelインスタンス」に%ExcelInstance%と入力します。
「マクロ」に「マクロ名;引数1;引数2」と入力します。
(引数が複数ある場合はセミコロンで区切って引数を渡します。)

今回はMainというプロシージャを実行し、任意の数字を2つ[200と300]を渡すという意味で、Main;200;300と入力しました。

画像12


▼「Excelワークシートから読み取り」アクションを実行する。

画像6

マクロによってA1セルに実行結果が出力されているはずなので、このアクションでA1セルの値を読み取りに行きます。生成される変数は%ExcelData%です。


▼「Excelワークシートから読み取り」アクションのパラメータを入力します。

画像7

①Excelインスタンス:%ExcelInstance%を入力します。
②取得:単一セルの値を選択します。
③先頭列:1
④先頭行:1


▼Excelを閉じるアクションを追加します。

画像8


▼「メッセージを表示」アクションを追加します。

画像10

マクロの実行結果をポップアップメッセージで表示します。


▼「メッセージを表示」アクションのパラメータを入力します。

画像9

「表示するメッセージ」に%ExcelData%を指定します。

これは「ワークシートから読み取り」アクションで生成される変数です。


3実行結果

▼実行結果がポップアップで出力されました。

画像11


4まとめ

以上で、PADでマクロにパラメータを受け渡す方法の例をご紹介しました。参考になれば嬉しいです。わたしのブログで他にもPADレシピ紹介しています。良かったら見てね。

よろしければサポートお願い致します。頂いたサポートは今後の活動費として大切に使用させて頂きます!