VBAからPower Automate for desktopのフローを実行する

Power Autoamte外からのフロー呼び出しが可能に

先日のPower Automate for desktop(PAD)のバージョンアップにより、待望のPAD外からのフロー呼び出しが可能になりました。

Power Automate for desktop – June 2022 updat

つまり、ExcelのVBAから呼び出したり、自作プログラムから呼び出したり、デスクトップに置いたショートカットから呼び出したりすることができるようになりました。


有償ライセンスが必要

残念ながら誰でもこの機能を使えるわけではなく、有償ライセンスを契約している方だけです。

Power Automate 価格

私は「アテンド型 RPA のユーザーごとのプラン」を契約しているため利用可能です。

知らないうちに、一回の実行ごとに課金される従量制プランも用意されています。これでも使えるのか不明です。


呼び出しにはURLを使う

呼び出す方法はURLを使ったものでした。

Run desktop flows via URL

ブラウザから呼び出すこともできるし、シェルから呼び出すこともできます。

基本的な方法は次のページで詳しく解説されています。

[Power Automate for desktop]URL経由でデスクトップフローを実行する

実際の実行方法についてはこちらのページが良いでしょう。

外部リンク機能を使用した Power Automate for desktop のフローの様々な実行方法を試してみる


VBAからの呼び出し

というわけで、今回はVBAからシェルを使って呼び出してみました。

'フローIDを使ってPower Automateのフローを実行する
Public Sub uInvokePowerAutomate()
    Const uID As String = "ここにはフローIDを指定する"
    uRunPowerAutomate uID
End Sub

'指定されたフローをPower Automateで実行
'参照設定 Windows Script Host Object Model
Public Sub uRunPowerAutomate(ByVal uFlowID As String)
    Const uEnvID As String = "ここには環境IDを指定する"
    Dim uURL As String
    Dim uWS As WshShell
    uURL = "ms-powerautomate:/console/flow/run?environmentId=" & uEnvID
    uURL = uURL & "&workflowId=" & uFlowID
    Set uWS = New WshShell
    uWS.Run uURL
End Sub

WshShellオブジェクトを扱うには、参照設定で、Windows Script Host Object Modelを指定しておく必要があります。(指定せずにCreateObjectを使っても良いです)

あとはワークシート上に設置したボタン等で、上のプロシージャーuInvokePowerAutomateを指定するだけです。

環境IDについては、Default- をIDの頭につけないと、実行できませんでした。


アップデート

2022/11/29 追記

先日のアップデートにより、フローの詳細画面からURLを取得できるようになっていました。(元々こうだったのかもしれませんが)

フローの「…」をクリックし、詳細を選びます。

「URLを実行」でコピーボタンを選べるようになっていました。

ここで取得したURLを WshShell の Run に指定すれば実行できるはずです。


また、コンソール画面の「…」を選ぶと「デスクトップショートカットを作成」が選べるようになっていました。

これを使うとサクッとデスクトップにショートカットを作ることができます。


使ってみると

これで、今までいちいちPower Automateのコンソールから実行していたフローを、Excelからボタンクリックで簡単に呼び出すことができるようになりました。

それくらいと思われるかもしれませんが、実際に使ってみると結構便利だという事がわかってきました。

なぜかPADはデフォルトのフローの並び順が編集時間順で、名前順ではありません。また、デフォルトのソート順を変える方法も見当たりません。

そのため、PADを起動する、並び替える、フローを見つける、フロー実行、という手順が必要でした。

なにげに、並び替えとフローを見つけるというのが煩雑で、時には違うフローを実行してしまう時もありました。

Excelのボタンに貼り付けたり、デスクトップにショートカットを用意することにより、迷いなく実行できるようになりました。

また、Power Automateを知らない方でもスムーズに実行できます。


追記: 最近は、コンソールの検索機能を使ってフローを絞り込み、それから実行しています。これでもコンソール起動と検索の手間があるので、業務で使うエクセルシートからボタンを押すだけで呼び出せた方が断然簡単です。

日常使うフローはほぼExcelとデスクトップに配置したので、最近は、ほとんどコンソールを開かなくなりました。


コメント

アクセス数の多い投稿

セキュリティ対策ソフトのノートンが詐欺ソフトまがいになってしまってショック

ZIPファイルを開こうとすると、展開を完了できません、と言われる

Excel 2019 クエリが原因で日本語入力の一文字目が勝手に確定する

オカムラ家具のOAチェアー、コンテッサを分解清掃

Excelのテーブルに行や列を挿入する際のエラー

突然滅茶苦茶遅くなったPCがWindows Updateのキャッシュクリアで復活

ChatGPTが日本語からVBAのコードを生成できてたまげる

Windows セキュリティーのビックリマークが消えない

Power Automate Desktopでブラウザでダウンロードしたファイルを処理する

Excel VBAからODBCを使ってデータを簡単に取得する