Power automate 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の頭につけないと、実行できませんでした。

使ってみると

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

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

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

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

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

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

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

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

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

2022年6月のアップデートによって、URL経由でPower Automate for desktop(PAD)のフローを実行できるようになりました(バージョン 2.21 以降)。

Power automate desktop フロー実行方法

Desktop flows can now be triggered via an external link

Premium users that are signed into Power Automate for desktop can now trigger a desktop flow through its console run URL. With this new feature, users can run desktop flows outside the console and without opening it at all.

https://powerautomate.microsoft.com/en-us/blog/power-automate-for-desktop-june-2022-update/ より

ただし実行するには有償ライセンスが必要で(試用版は可)、広く使われている無償のMicrosoft アカウント環境では実行できません。

フローを実行するURLの形式

URLからフローを実行するには、下記のように「ms-powerautomate:」URIスキームで環境IDやフロー名、フローIDを指定する必要があります。

フロー名を指定
ms-powerautomate:/console/flow/run?workflowName=(フロー名)
フローIDを指定
ms-powerautomate:/console/flow/run?workflowId=(フローID)
環境IDとフロー名を指定
ms-powerautomate:/console/flow/run?environmentId=(環境ID)&workflowName=(フロー名)
環境IDとフローIDを指定
ms-powerautomate:/console/flow/run?environmentId=(環境ID)&workflowId=(フローID)

たとえば環境IDが「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」、フロー名が「リンクから実行するフロー」のフローを実行する場合、指定するURLは下記のようになります。

ms-powerautomate:/console/flow/run?environmentId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&workflowName=%e3%83%aa%e3%83%b3%e3%82%af%e3%81%8b%e3%82%89%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e3%83%95%e3%83%ad%e3%83%bc

上記の通りフロー名はURLエンコードして指定します。

例の上2つのように環境IDを指定しない場合は、コンソールで選択中の環境で実行されます。

また、URLで指定した環境とは別の環境がコンソールで開かれている場合、自動的に環境が切り替わるはずなのですが、私が試した限りでは下図のエラーが発生し、上手く実行できませんでした。

Power automate desktop フロー実行方法

URL経由でフローを実行する際は、あらかじめコンソールで実行する環境を開いておいた方が無難だと思います。

環境IDやフローIDの調べ方

環境IDやフローIDはPower Automateからフローを開けば、アドレスから取得できます。

Power automate desktop フロー実行方法

Power automate desktop フロー実行方法


2022/7/5 追記:
フローIDやフロー名、環境IDを取得して実行用URLを生成する簡単なスクリプトを作成しました。

Power automate desktop フロー実行方法

2022.07.05

前回の記事で、URL経由でPower Automate for desktop(PAD)のフローが実行できることを紹介しましたが、フローIDやURLエンコードされたフロー名の指定が必要になります。 これらの値を調べるために毎回Power Auto...

もしくは下記レジストリの値を設定することでも表示・非表示を指定できますが、私が試した限りでは一度コンソールを再起動しないと反映されませんでした。
(「EnableAskBeforeRunningAFlowExternally」の値が「0」でダイアログ非表示、「1」で表示)

Powerautomate Desktopの共有フローは?

デスクトップ フローの共有.
Power Automate にサインインする。.
画面の左側から マイ フロー を選択します。.
デスクトップ フロー を選択します。.
所有しているフローを選択します。.
共有 を選択します。.
人を追加する フィールドを選択し、フローを共有する組織内の人物の名前を入力します。.

Power Automate Desktopの対応OSは?

Windows 10 (Home、Pro、Enterprise)、Windows 11 (Home、Pro、Enterprise)、Windows Server 2016、Windows Server 2019、Windows Server 2022 を実行するデバイス。

パワーオートメイトデスクトップのフロー保存先は?

Microsoft アカウントを使用して Power Automate で構築されたフローは、ユーザーの OneDrive に自動的に保存されます。

Power Automate desktop どこに保存される?

Power Automate Desktopで作成したフローですが、Microsoftアカウントの場合は、個人のOneDriveに保存されますが、組織アカウントの場合はクラウド上のDataverseの環境内に保存されます。