Power Automate Desktop(PAD)を業務で使っていると、「ボタン1つでフローを起動したい」「Excelから自動実行したい」といったニーズが出てくる。
本記事では、クラウドフロー前提での外部実行方法(ショートカット・コマンド・Excel連携)に加え、引数の渡し方やフロー名指定まで、初心者向けにわかりやすく整理する。
外部からPADフローを実行するメリット・デメリット
メリット
- ワンクリックで業務を自動化できる
- Excelなど既存ツールと簡単に連携できる
- 社内ユーザーへ展開しやすい
- 定型作業の効率化・ミス削減
デメリット
- 環境(会社テナント)による制限を受ける
- 外部実行時に確認ダイアログが出る場合がある
- URIの設定ミスで動作しないことがある
デスクトップ ショートカットを作成
一番簡単な方法は、デスクトップにショートカットを作成する方法である。
フローの「…」→「デスクトップ ショートカットを作成」を順にクリックすることで、デスクトップにショートカットを作成することができる。
ショートカットを作成したいフローの上にマウスカーソルを移動し、表示された「…」クリック

表示されたメニューから「デスクトップショートカットを作成」クリック

この方法は各パソコンで実行する必要があるため、個人的な改善には適しているだろう。
複数にフローを展開して使ってもらう場合には個人個人で操作してもらう必要があり、手間が発生してしまう場合があるだろう。
ショートカットを自分で作成する
フロー名を使ってショートカットを自分で作成することもできる。フロー名のほうが何を実行しているかわかりやすい。
下記のような形式でコマンドを入力する。
ms-powerautomate:/console/flow/run?workflowName=フロー名デスクトップを右クリックし表示されたメニューから「新規作成」→「ショートカット」を順にクリック。

「項目の場所を入力してください」欄に下記のコマンドを入力し「次へ」クリック

ms-powerautomate:/console/flow/run?workflowName=フロー名わかりやすいショートカットの名前を入力し完了をクリック

ショートカットができあがる

ここから先は、詳しくいろいろな方法で実装する方法を紹介する
外部実行の前提(重要)
本記事では以下を前提とする:
- フローはクラウド環境(会社環境)に保存
- 実行はURIスキームを使用
基本形式:
ms-powerautomate:/console/flow/runworkflowidを指定して実行
風呂IDを指定して実行する方法が一番確実で間違いがない方法である。
ただし環境に依存するため環境ごとに別のIDがついている可能性があることに注意する。
ms-powerautomate:/console/flow/run?workflowid=フローIDフローIDの取得方法
フローの「…」クリックし、「プロパティ」クリックし、「フローID」を参照する。
フローの「…」クリック

「プロパティ」クリック

「フローID」を確認しコピーする

引数を指定して実行する方法
外部実行時にパラメータ(引数)を渡すことで、処理を動的に変更できる。
引数付きURIの形式(workflowid指定)
ms-powerautomate:/console/flow/run?workflowid=xxx&inputArguments={"param1":"value1"}例
ms-powerautomate:/console/flow/run?workflowid=xxx&inputArguments={"FilePath":"C:\\test\\data.xlsx","Mode":"1"}実際には、引数の文字列はURLエンコードを行なって変換したものを使用する
ms-powerautomate:/console/flow/run?workflowid=xxx&inputArguments=%7B%22FilePath%22%3A%22C%3A%5C%5Ctest%5C%5Cdata.xlsx%22%2C%22Mode%22%3A%221%22%7Dフローの引数を追加する方法
フローの引数を追加するには下記の方法で追加できる。
フローの編集画面を開き、「変数」→「(+)」→「入力」を順にクリック

引数の設定を入力し「保存」クリック

「引数」(FilePath)が追加される

ポイント
inputArgumentsはJSON形式- PAD側の入力変数名と一致させる
- 日本語はURLエンコード推奨
Power Automate Desktop側の設定
- 入力変数を作成
- URIのキー名と一致させる
フロー名を指定して実行する方法
Power Automate Desktopは、workflowidだけでなくフロー名(workflowName)でも実行可能である。
フロー名指定の形式
ms-powerautomate:/console/flow/run?workflowName=フロー名例:ワークフロー名「請求書処理フロー」を実行する
ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー引数と組み合わせる例
ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー&inputArguments={"Mode":"1"}メリット
- ID不要で分かりやすい
- Excel・バッチで扱いやすい
- 非ITユーザーでも運用可能
注意点
① フロー名は完全一致が必須
- スペース・全角半角含め一致
② 同名フローに注意
- 同一環境内で重複すると誤動作の可能性
③ 環境依存あり
- テナントやバージョンにより動作差あり
④ 本番はID推奨
👉 安定性重視なら workflowid を使用する
方法①:ショートカットから実行(最も簡単)
手順
- デスクトップで右クリック →「ショートカットの作成」
- URIを入力
ms-powerautomate:/console/flow/run?workflowName=請求書処理フローポイント
- ダブルクリックだけで実行
- 社内配布が簡単
方法②:コマンド(バッチ)から実行
バッチ例(フロー名)
@echo off
start "" "ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー"引数付き
@echo off
set uri=ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー^&inputArguments={"Mode":"1"}
start "" "%uri%"ポイント
👉 & は ^& にエスケープする
方法③:Excelから実行(VBA連携)
VBAコード
Sub RunPADFlow()
Dim uri As String
uri = "ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー"
Shell "cmd /c start """" """ & uri & """", vbHide
End Sub
引数付き
Sub RunPADFlowWithArgs()
Dim uri As String
uri = "ms-powerautomate:/console/flow/run?workflowName=請求書処理フロー" & _
"&inputArguments={""Mode"":""1"",""User"":""Taro""}"
Shell "cmd /c start """" """ & uri & """", vbHide
End Sub活用シーン
- Excel入力 → PAD処理などの他のツールとの連続的な処理を行なう
- 業務ツール化
- RPAのフロント化
コメント