2022年1月のアップデートで、「Excel の起動」アクションでExcelファイルを開く際、単一プロセス下でインスタンスをグループ化できるようになりました。
Restructure of Excel instance functionality to support multiple macros
Users will now have the ability to group Excel instances under a single Excel process. This way, Excel instances will be able to reference multiple macros. The ability to launch isolated instances will also remain available.
https://powerautomate.microsoft.com/en-us/blog/power-automate-for-desktop-january-2022-update/ より
これにより他ブックのマクロを参照できるようになっています。
具体的な使用方法は下記の通りです。
他ブックのマクロを実行するフロー
フロー全体
1. Excel の起動
ドキュメントパスを指定して下記マクロ「Macro1」が書かれたファイル(Macro1.xlsm)を開きます(変数:%ExcelInstance%)。
このとき、「詳細」から「新しい Excel プロセスの配下にネストする」オプションをオフにしておきます。
Public Sub Macro1() Dim i As Long For i = 1 To 100000 ActiveSheet.Cells(i, 1).Value = i Next ActiveSheet.Range("B1").Value = "Macro1の処理が終了しました。" End Sub
2. Excel の起動
「Excel の起動」オプションで「空のドキュメントを使用」を指定し、新規ファイルを作成した状態でExcelを起動します(変数:%ExcelInstance2%)。
こちらも「新しい Excel プロセスの配下にネストする」オプションをオフにしておきます。
3. Excel マクロの実行
Macro1.xlsm ファイルで「Macro1」マクロを実行します。
4. Excel マクロの実行
新規作成したファイルで Macro1.xlsm ファイルの「Macro1」マクロを実行します。
このとき「マクロ」オプションで「Macro1.xlsm!Macro1」のように、マクロが書かれたファイルを指定します。
5. Excel を閉じる
処理が終わったらExcelを閉じます。
実行画面
今月のPower Automate for desktopのアップデートで、「Excel の起動」アクションでファイルを開く際にインスタンスをグループ化できるようになったので、ファイルをまたがってマクロを実行できるようになりました。 https://t.co/sOStCTfz4B #PAD #PA4d pic.twitter.com/deyShJU3G8
— きぬあさ (@kinuasa) January 27, 2022
これまでの「Excel の起動」アクションでは、複数個Excelを起動した場合それぞれ別のプロセスとして立ち上がっていたため、上記のような形で別ファイルのマクロを実行することはできませんでしたが、今回のアップデートによって、ファイルをまたがってマクロを実行することができるようになりました。
この記事へのコメントはありません。