- 技術 💻
Power Automate Desktopとは|使い方・無料の範囲とエラー処理
結論
Power Automate Desktopとは、Windowsのパソコン操作を自動化するMicrosoftの無料のRPAツールです。自動起動や共有は有償版の機能です。
この記事でわかること
- 無料と有償3プランの違い・料金の早見表
- 変数・条件・ループ・Web操作の作り方と演算子16種
- エラー原文12種と、Robinの定義・実行URLの実物
Power Automate Desktop(PAD)では、コンソールでフローを作り、デザイナーにアクションを並べて実行します。決まった時刻に自動で動かすところから先が、有償版の範囲です。
flowchart TD
A[コンソールで<br>新しいフローを作る] --> B[デザイナーで<br>アクションを並べる]
B --> C[変数・条件・ループと<br>エラー処理を足す]
C --> D[手動で実行して<br>結果を確かめる]
D --> E[自動で起動するなら<br>クラウドフロー(有償)]
よく調べられることを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| 無料で使えるか | 使える。手動で起動する範囲は無料 | 無料と有償の違い |
| Windows 11 に入っているか | 入っている(アプリ名は Power Automate) | インストール |
| 有償版の料金 | Premium 月2,248円(ユーザー・年払い) | 料金 |
| 決まった時刻に動かす | クラウドフローか実行 URL。Premium 以上 | スケジュール実行 |
| 変数の書き方 | %NewVar% のように % で囲む |
変数の使い方 |
| 操作を記録したい | デザイナーの「レコーダー」 | レコーダー |
| エラーで止めたくない | 「エラー発生時」と「ブロック エラー発生時」 | エラー処理 |
| フローを人に渡す | アクションをコピーしたテキストを渡す | フローの定義(Robin) |
| Mac で使えるか | 使えない。対応は Windows 10・11・Server | インストール |
確認環境:Power Automate for desktop の仕様・画面・料金は、Microsoft Learn(日本語版・英語版)、Microsoft の料金ページ、リリース一覧(最新は 2026年10月15日公開の 2.73.155.26278)と、ドキュメントのリポジトリ MicrosoftDocs/power-automate-docs で確かめました。フロー定義(Robin)のテキストは、公式ドキュメントに載っている例を Python 3.11.15(Ubuntu 24.04)で読み取り、アクション・生成される変数・ブロックの対応を一覧にしました。実行 URL の組み立て(エスケープと URL エンコード)と、CSV の文字コードごとのバイト列も Python で実行して確かめました(確認日 2026年10月22日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Power Automate Desktopとは|使い方・無料の範囲とエラー処理」
Power Automate Desktopとは(読み方・できること)
この節では、Power Automate Desktop がどんなツールで、何を自動化できるかが分かります。
Power Automate Desktop(パワー オートメイト デスクトップ、略して PAD)は、Windows で人がしているマウス・キーボードの操作やファイルの整理を、「アクション」を並べたフローで自動化する RPA(ロボティック プロセス オートメーション)ツールです。 現在の正式な名前は「Power Automate for desktop」(日本語版のドキュメントでは「デスクトップ用 Power Automate」)で、作るフローは「デスクトップ フロー」と呼ばれます。Windows 11 では「Power Automate」という名前のアプリとして最初から入っています。
Microsoft Learn によると、用意されたアクションは 400 を超え、アプリケーションの UI 要素・画像・画面の座標を使ってパソコンを操作できます。対象は、Web アプリ・デスクトップ アプリ・古くからある業務アプリ・ターミナル エミュレーター・ファイルとフォルダーです。
1ファイルとフォルダーの整理
フォルダー内のファイルを取得し、名前を変える・移す・コピーする。CSV やテキストの読み書き、ZIP の圧縮・展開もアクションにある。
2Web ページの操作
Edge・Chrome・Firefox を起動して、入力・クリック・データの抽出を行う。表をまとめて取り出すこともできる。
3デスクトップ アプリの操作
ウィンドウのボタンを押す、テキスト欄に入力する、表から値を取り出す。API の無い業務アプリにも使える。
4決まった判断の繰り返し
変数・条件分岐・ループで「この値ならこう処理する」を組む。PowerShell や Python のスクリプトを呼ぶアクションもある。
Power Automate(クラウドフロー)との関係
Power Automate は Microsoft のワークフロー自動化サービスの総称で、Power Automate Desktop はその中の「パソコンの上で動く部分」です。 クラウドで動くフロー(クラウドフロー)は、メールの受信や決まった時刻をきっかけに、Microsoft 365 などのサービスをコネクタでつなぎます。PAD のデスクトップ フローは、Windows の画面やファイルを直接操作します。2つの違いは後の節の表にまとめました。
無料でどこまで使える?有償版との違い
この節では、無料で使える範囲と、お金がかかる機能の境目が分かります。
サインインするアカウントによって使える機能が変わります。 フローを作る・レコーダーで記録する・手動で実行する・エラー処理を組む、までは無料のアカウントでもできます。クラウドフローからの起動(スケジュール)、共有、集中管理は「組織のプレミアム アカウント」の機能です。Microsoft Learn の「サインイン アカウントの比較」の要約です(2026年10月22日時点)。
| 機能 | Microsoft アカウント・職場または学校(無料) | 組織のプレミアム アカウント |
|---|---|---|
| フローの保存先 | 個人の OneDrive/既定の環境の Dataverse | 環境全体の Dataverse |
| デザイナー・レコーダー・400 以上のアクション | 使える | 使える |
| 例外処理(エラー処理) | 使える | 使える |
| クラウドフローからの起動・スケジュール | 使えない | 使える |
| フローの共有・共同編集 | 使えない | 使える |
| 実行ログの集中管理・レポート | 使えない | 使える |
| AI Builder・プレミアム コネクタ・非アテンド型 RPA | 使えない | 使える(非アテンド型は別ライセンス) |
毎朝9時に、ファイルの整理フローを動かしたいとき
実行 URL・デスクトップ ショートカットからの起動も、公式ドキュメントでは Premium プランか従量課金の環境が前提条件に挙がっている
アカウントごとの注意点です。
- Microsoft アカウント(個人):追加料金なしで使え、フローは自分の OneDrive の「Apps\Power Automate Desktop For Windows」に保存されます。
- 職場または学校アカウント(無料):既定の環境に Dataverse のデータベースが必要です。無い場合は作成を求められます。
- Windows 10 Home・Windows 11 Home:フローの作成とローカルでの実行はできますが、クラウドからデスクトップ フローを起動することはできません(Microsoft Learn の表)。
有償版の料金(2026年10月22日時点)
PAD を有償で使うライセンスは、人が見ている前で動かす「Premium」、無人で動かす「Process」、Microsoft が用意した仮想マシンで動かす「Hosted Process」の3つです。 Microsoft の料金ページの価格です(税抜、年払い)。
| プラン | できること | 含まれる Dataverse の容量 |
|---|---|---|
| Power Automate Premium | クラウドフロー、アテンド型 RPA、プレミアム・カスタム コネクタ、プロセス マイニング(50MB) | データベース 250MB・ファイル 2GB |
| Power Automate Process | クラウドフロー、非アテンド型 RPA、プレミアム・カスタム コネクタ | データベース 50MB・ファイル 200MB |
| Power Automate Hosted Process | Process の内容と、Microsoft が管理する仮想マシン | データベース 50MB・ファイル 200MB |
- アテンド型は、人がサインインしているパソコンでフローが動く形、非アテンド型は、サインインしていないマシンでフローがセッションを作って動く形です。非アテンド型の実行には Process プランが必要です。
- 組織の無料ユーザーは、PAD の「Go premium」の Start trial(英語版のドキュメントの表記)、またはポータルのデスクトップ フローの画面から、90 日間の試用ライセンスを申し込めます。
- Azure のサブスクリプションで支払う 従量課金 の環境でも、プレミアムの機能の多くが使えます。
インストールと始め方(Windows 11・Windows 10)
この節では、PAD を入れる方法と、入れる前に確かめる条件が分かります。
Windows 11 には最初から入っています。 スタート メニューで「Power Automate」を検索して起動します。Windows 10 や、入っていない Windows 11 では、Microsoft Store か MSI インストーラーで入れます。
動作の条件(2026年10月22日時点)
| 項目 | 条件 |
|---|---|
| OS | Windows 10・11(Home・Pro・Enterprise)、Windows Server 2016・2019・2022・2025 |
| CPU | 最小 1.00GHz・2 コア以上(非アテンド型は 4 コア以上)。ARM プロセッサは対象外 |
| メモリ・ストレージ | 最小 2GB・1GB、推奨 4GB・2GB |
| ブラウザー | Microsoft Edge(80 以降)・Google Chrome・Mozilla Firefox |
| ランタイム | 2.69 以降は .NET 10 ランタイム(MSI のインストーラーが入れる) |
| その他 | TLS 1.2、インターネット接続、キーボード |
Mac・Linux 版はありません。Mac で使う場合は、Windows の仮想マシンなどで動かす形になります(ARM 版の Windows は対象外)。
Microsoft Store 版
管理者権限が要らない
更新は自動
マシン ランタイム アプリは含まれない
管理者権限の無い個人のパソコン向け
MSI インストーラー版
管理者権限が必要
更新は手動(2.54 以降は自動更新を設定できる)
マシン ランタイム アプリを選んで入れられる
サイレント インストールができる
MSI 版と Store 版は、同じパソコンに両方は入れられません。 切り替えるときは、先に入っている方をアンインストールします。どちらが入っているかは、「設定」→「アプリ」で「デスクトップ用 Power Automate」(MSI 版)か「Power Automate」(Store 版)かで見分けられます。
入れる
Windows 11 はスタート メニューから起動します。無ければ Microsoft Store で「Power Automate」を入れるか、MSI のインストーラー(Setup.Microsoft.PowerAutomate.exe)を実行します。MSI では「デスクトップ用 Power Automate」「コンピューター ランタイム アプリ」などの機能を選びます。
サインインする
Microsoft アカウント、職場または学校のアカウントでサインインします。どのアカウントかで、保存先と使える機能が決まります。
ブラウザー拡張機能を入れる
Web を自動化するなら、インストーラーの案内か、フロー デザイナーの「ツール」→「ブラウザー拡張機能」から、Edge・Chrome・Firefox 用の拡張機能を入れて有効にします。
ブラウザーの設定を変える
Edge は「設定」→「システム」の「Microsoft Edge が閉じた時にバックグラウンド アプリを実行し続ける」を、Chrome は「Google Chrome が終了してもバックグラウンド アプリの実行を続ける」をオフにします。
会社のパソコンへまとめて入れる場合、MSI はコマンドで入れられます(公式ドキュメントの形)。-ACCEPTEULA は使用条件に同意する指定で、付けないと入りません。
Setup.Microsoft.PowerAutomate.exe -Silent -Install -ACCEPTEULA
Setup.Microsoft.PowerAutomate.exe -Silent -Uninstall
インストールで失敗したときは、インストーラーを右クリックして「管理者として実行」、以前の版を「設定」→「アプリ」から削除、の順に試します。エラー コード 1603 は、管理者権限と、Power Automate のプロセスが残っていないかを確かめます。
画面の見方(コンソールとフロー デザイナー)
この節では、PAD を開いたときの2つの画面と、それぞれで何をするかが分かります。
PAD は「コンソール」と「フロー デザイナー」の2つの画面でできています。 コンソールはフローの一覧と実行、デザイナーはフローの中身を作る画面です。
| 画面 | 場所 | すること |
|---|---|---|
| コンソール | ホーム・自分のフロー・共有されたフロー・例 | フローの作成・実行・編集・プロパティ(実行 URL・ID) |
| デザイナー | アクション ペイン(左) | アクションを探して、ワークスペースへドラッグする |
| デザイナー | ワークスペース(中央) | アクションを上から順に並べる。サブフローはタブで分かれる |
| デザイナー | 変数ペイン(右) | 入力・出力変数と、フロー変数の現在の値 |
| デザイナー | UI 要素ペイン・画像ペイン | クリックや入力の対象として取り込んだ UI 要素・画像 |
| デザイナー | エラー ペイン(下) | 種類・説明・サブフロー・行の一覧 |
デバッグに使うキーです(Microsoft Learn「デスクトップ フローのデバッグ」)。
| 操作(英語版の表記) | キー | 説明 |
|---|---|---|
| 実行(Run) | F5 | 実行中は一時停止(Ctrl + Pause)に変わる |
| 次のアクションを実行(Run next action) | F10 | 1つ実行するごとに止まる。変数ペインで値を見られる |
| 停止(Stop) | Shift + F5 | フローを完全に止める |
| ステップ オーバー・アウト(Step over・Step out) | F11・Shift + F11 | 「Debug」メニューで Stepping Mode をオンにしてから使う |
| ブレークポイント | 行番号の左をクリック | 赤い点の行で止まる |
| ここから実行(Run from here) | アクションを右クリック | 前のアクションを飛ばして、そこから実行する |
画面下のステータス バーの「Run delay」は、デザイナーで実行するときに各アクションの後で待つミリ秒です。
最初のフローを作る(フォルダーをデスクトップにバックアップ)
この節では、Microsoft Learn の入門の例を使って、フローを作って実行するまでの操作が分かります。
例は「選んだフォルダーを、デスクトップの backup フォルダーにコピーする」フローです。 アクションは4つです。
新しいフローを作る
コンソールの「新規フロー」を選び、名前(例:フォルダーをデスクトップにコピーする)を入れて「作成」を選びます。デザイナーが別のウィンドウで開きます。
特別なフォルダーを取得する
アクション ペインの「フォルダー」グループから「特別なフォルダーを取得」をワークスペースへドラッグします。既定でデスクトップが選ばれているので、そのまま「保存」します。変数 SpecialFolderPath にデスクトップのパスが入ります。
フォルダーを選ばせる
「メッセージ ボックス」グループの「フォルダー選択ダイアログを表示する」を追加し、ダイアログの説明を「バックアップするフォルダーを選択します」にします。選ばれたフォルダーは SelectedFolder に入ります。
backup フォルダーを作る
「フォルダーの作成」を追加し、「新しいフォルダーの作成先」に %SpecialFolderPath%、「新しいフォルダー名」に backup を入れます。
フォルダーをコピーする
「フォルダーのコピー」を追加し、「コピーするフォルダー」に %SelectedFolder%、「移動先フォルダー」に %SpecialFolderPath%\backup を入れます。
実行して保存する
「実行」(F5)で動かし、デスクトップに backup フォルダーができて、中に選んだフォルダーが入ることを確かめます。デザイナーを閉じて保存すると、コンソールから実行できます。
このフローを2回実行すると、2回目は「フォルダーの作成」の時点で backup が既にあります。実際に使うフローでは、「フォルダーが存在する場合」で分けるか、エラー処理を付けておくと止まりにくくなります(後の節)。
アクションの早見表(やりたいこと別)
この節では、よく使う操作が、どのグループのどのアクションかを引けます。
アクションの名前は、Microsoft Learn のアクション リファレンスの日本語版と英語版の表記です。アクション ペインの上の検索欄で名前の一部を入れると探せます。
| やりたいこと | アクション(日本語版の表記) | 英語版の表記 |
|---|---|---|
| 変数に値を入れる・1増やす | 変数の設定・変数を大きくする | Set variable・Increase variable |
| 条件で分ける | If・Else if・Else・Switch・Case | If・Else if・Else・Switch・Case |
| 決まった回数・リストで繰り返す | ループ・それぞれに対して | Loop・For each |
| 条件が満たされる間繰り返す | ループ条件 | Loop condition |
| フォルダーのファイル一覧 | フォルダー内のファイルを取得 | Get files in folder |
| ファイルを移す・名前を変える | ファイルの移動・ファイルの名前を変更する | Move file(s)・Rename file(s) |
| CSV を読む・書く | CSV ファイルから読み取る・CSV ファイルに書き込みます | Read from CSV file・Write to CSV file |
| テキストファイルを読む・書く | ファイルからテキストを読み取る・テキストをファイルに書き込む | Read text from file・Write text to file |
| 今日の日付 | 現在の日時を取得します | Get current date and time |
| 日付を文字にする | datetime をテキストに変換 | Convert datetime to text |
| 文字を探す・置き換える | テキストの解析・テキストを置換する | Parse text・Replace text |
| ブラウザーを開く | 新しい Microsoft Edge を起動する(Chrome・Firefox も) | Launch new Microsoft Edge |
| Web の入力・クリック | Web ページ内のテキスト フィールドに入力する・Web ページのボタンを押す | Populate text field on web page・Press button on web page |
| Web から表を取り出す | Web ページからデータを抽出する | Extract data from web page |
| アプリのボタン・入力欄 | ウィンドウの UI 要素をクリックする・ウィンドウ内のテキスト フィールドに入力する | Click UI element in window・Populate text field in window |
| キーを送る | キーを送信する | Send keys |
| メッセージを出す・入力させる | メッセージを表示・入力ダイアログを表示 | Display message・Display input dialog |
| 決まった秒数待つ | 遅延 | Wait |
| スクリプトを動かす | PowerShell スクリプトの実行・Python スクリプトの実行 | Run PowerShell script・Run Python script |
Excel の操作は「Excel」グループにあり、Launch Excel・Read from Excel worksheet・Write to Excel worksheet・Save Excel・Close Excel などのアクションが並んでいます。
スクリプトのアクションは、PowerShell・Python・VBScript・JavaScript・DOS コマンド・.NET の6種類です。「Python スクリプトの実行」で選べる版は Python 2.7 と Python 3.4 で、既定は 2.7 です(2026年10月22日時点の公式リファレンス)。結果は、PowerShell は Write-Output、Python は print で出すと、変数 PowershellOutput・PythonScriptOutput に入ります。PowerShell 自体の使い方は、関連記事「PowerShellコマンド一覧|用途別50選とbash対応表・実行例付き」で扱っています。
変数の使い方(% の書き方・データ型・プロパティ)
この節では、PAD の変数の書き方と、リスト・データテーブルの値の取り出し方が分かります。
PAD の変数は、名前を % で囲んで使います。 % と % の間は「式」として計算されます。式の中で文字をそのまま書くときは引用符で囲み、% 自体を文字として使うときは %% と2つ重ねます。
| 式 | 結果 |
|---|---|
%5 * 3% |
15(数値) |
%'this is ' + 'text'% |
this is text(テキスト)。+ で文字をつなぐ |
%'This is the number ' + 5% |
This is the number 5(テキスト) |
%Index = 1 OR Index = 2% |
Index が 1 か 2 なら True |
%NOT(4 <> 4)% |
True(かっこの中を反転) |
%NewVar + 1% |
NewVar の値に 1 を足した数 |
比較は =・<>・<・<=・>・>=、論理は AND・OR・NOT です。比較は同じ型の値どうしでしかできません。文字の判定には StartsWith・EndsWith・Contains(否定形の NotStartsWith などもある)と IsEmpty・IsNotEmpty が使えます。
データ型と値の取り出し方
| 型 | 書き方の例 | 意味 |
|---|---|---|
| リスト | %List[0]% |
最初の項目。番号は 0 から |
| リスト | %List[2:4]% |
3番目と4番目(終わりの番号は含まない) |
| データテーブル | %DataTable[0][1]% |
1行目の2列目 |
| データテーブル | %ExcelData[0]['氏名']% |
1行目の「氏名」列 |
| データテーブル | %{['Product1', '10 USD'], ['Product2', '20 USD']}% |
2行2列の表を作る |
| データ行 | %CurrentItem['氏名']% |
For each で取り出した1行の「氏名」 |
| カスタム オブジェクト | %{ 'Name': 'Yamada', 'Age': 30 }% |
JSON に変換できるキーと値の組 |
| 日時 | %d"2026-10-22"% |
日時の値 |
よく使うプロパティ
変数の後ろに .プロパティ名 を付けると、長さや件数などを取り出せます。 例:%Files.Count%(ファイルの数)。
| 型 | プロパティ | 内容 |
|---|---|---|
| テキスト | Length・ToUpper・ToLower・Trimmed・isEmpty |
文字数・大文字・小文字・前後の空白を除いた文字・空か |
| 日時 | Year・Month・Day・DayOfWeek・Hour・Minute・Second |
年・月・日・曜日・時・分・秒 |
| リスト | Count |
項目の数 |
| データテーブル | RowsCount・Columns・IsEmpty |
行数・列名のリスト・空か |
| ファイル | FullName・Name・NameWithoutExtension・Extension・Directory・Size・LastModified |
フルパス・名前・拡張子なしの名前・拡張子・フォルダー・バイト数・最終更新 |
| フォルダー | FullName・Name・Parent・FilesCount・FoldersCount |
フルパス・名前・親・ファイル数・フォルダー数 |
| エラー | ActionName・Message・Location・ErrorDetails |
失敗したアクション名・メッセージ・場所・詳細 |
入力変数・出力変数と機密の変数
- 入力変数は、クラウドフローやコンソールからフローへ値を渡す変数です。変数ペインの「+」→「入力」で、変数名・データ型・既定値・外部名称を決めます。外部名称は、クラウドフローの画面に出る名前です。
- 出力変数は、フローの結果をクラウドフローへ返す変数です。
- 変数を右クリックして 機密としてマーク すると、デバッグ中や「変数の設定」の概要で値が隠れます。公式ドキュメントは、機密の変数はアクションに直接書いたパスワードを守るものではないので、パスワードを平文で書かないように、と書いています。
名前に使えない語(予約語)
IF・LOOP・END・SET・NEXT・INPUT・OUTPUT・ERROR・WAIT など 46 語は、変数名・カスタム オブジェクトのプロパティ名に使えません。大文字と小文字は区別されないので、next や Input も使えません。全部の一覧は Microsoft Learn「Reserved keywords in desktop flows」にあります。
条件分岐(If・Else if・Switch)と演算子
この節では、条件で処理を分けるアクションと、比べ方(演算子)の一覧が分かります。
条件分岐は「If」で始め、必要なら「Else if」「Else」を足し、「End」で閉じます。 値で何通りにも分けるときは「Switch」と「Case」「Default case」を使います。If・Else if・Case は「最初のオペランド」「演算子」「2番目のオペランド」を入れます。
| 演算子 | 例(最初 / 2番目) | 真になるとき |
|---|---|---|
| と等しい (=)・と等しくない (<>) | %Status% / 完了 |
同じ・違う |
| より大きい (>)・以上である (>=) | %Files.Count% / 0 |
数が大きい |
| より小さい (<)・以下である (<=) | %Amount% / 10000 |
数が小さい |
| 含む・含まない | %Subject% / 請求書 |
文字を含む・含まない |
| 空である・空ではない | %Value% |
空かどうか |
| で始まる・で始まらない | %FileName% / 2026 |
文字で始まる・始まらない |
| で終わる・で終わらない | %FileName% / .pdf |
文字で終わる・終わらない |
| 空白である・空白ではない | %Value% |
空白かどうか |
英語版の名前は、Equal to (=)、Not equal to (<>)、Greater than (>)、Greater than or equal to (>=)、Less than (<)、Less than or equal to (<=)、Contains、Does not contain、Is empty、Is not empty、Starts with、Does not start with、Ends with、Does not end with、Is blank、Is not blank の16種です。既定は「と等しい (=)」です。
「ファイルが存在する場合」「フォルダーが存在する場合」「Web ページが次を含む場合」「ウィンドウが次を含む場合」のように、条件の判定そのものが1つのアクションになっているものもあります。ファイルの有無で分けるなら、If でパスを比べるより、これらを使う方が短く書けます。
ループ(Loop・For each・ループ条件)
この節では、繰り返しの3種類と、途中で抜ける方法が分かります。
回数が決まっていれば「ループ」、リストや表の全部を回すなら「For each」(日本語版のリファレンスの表記は「それぞれに対して」)、条件が満たされる間なら「ループ条件」です。 どれも「End」で閉じます。
| アクション | 入れるもの | 生成される変数(既定の名前) |
|---|---|---|
| ループ(Loop) | 開始値・増分・終了 | LoopIndex(開始値から増分ずつ増える番号) |
| For each | 反復処理を行う値(リスト・データ行・データテーブル) | CurrentItem(今回の項目) |
| ループ条件(Loop condition) | 最初のオペランド・演算子・2番目のオペランド | なし |
| ループを抜ける(Exit loop) | なし | なし。ループの次へ進む |
| 次のループ(Next loop) | なし | なし。残りを飛ばして次の回へ |
よくある組み合わせは、「フォルダー内のファイルを取得」で Files を作り、「For each」で CurrentItem を1つずつ処理する形です。%CurrentItem.Name% でファイル名、%CurrentItem.NameWithoutExtension% で拡張子なしの名前が取れます。
データテーブルを「For each」で回すと、CurrentItem は1行(データ行)になり、%CurrentItem['列名']% で列の値を取り出します。「ループ」で回す場合は、%DataTable[LoopIndex]['列名']% の形で、終了を %DataTable.RowsCount - 1% にします(番号が 0 から始まるため)。
ファイル・フォルダー・CSV の操作
この節では、ファイル操作のアクションの組み立て方と、CSV を読むときの文字コードの選び方が分かります。
ファイル名の変更・移動・コピーは、「フォルダー内のファイルを取得」で一覧を作り、その一覧を各アクションに渡す形が基本です。 「フォルダー内のファイルを取得」の主な設定です。
| 設定 | 既定値 | 説明 |
|---|---|---|
| ファイル フィルター | * |
*.pdf のように絞る。複数は *.txt;*.csv とセミコロンで区切る |
| サブフォルダーを含む | False | 下のフォルダーも探すか |
| 並べ替え | 並べ替えなし | 名前・拡張子・サイズ・作成時間・最終変更などで並べる。3段階まで指定できる |
| 生成される変数 | Files |
ファイルのリスト |
ファイル名に日付を付けるときは、「現在の日時を取得します」→「datetime をテキストに変換」で文字にします。カスタム形式の書き方は、公式の例(yyyyMMdd・MM/dd/yyyy・hh:mm:sstt)のとおり、.NET の日時の書式と同じ記号です。
| 書式 | 意味 | 間違えやすい点 |
|---|---|---|
yyyy・MM・dd |
年4桁・月2桁・日2桁 | mm(小文字)は「分」。yyyymmdd は月ではなく分が入る |
HH・hh |
24時間制・12時間制 | hh は午後1時が 01 になる。区別には tt(AM/PM) |
mm・ss |
分・秒 | ― |
ddd・dddd |
曜日の短い名前・長い名前 | 言語の設定で表記が変わる |
ファイル名に使う形は yyyyMMdd_HHmmss のように、ファイル名に使えない / や : を含まない書式にします。.NET の日時の書式は、関連記事「C# DateTimeの使い方|フォーマット一覧と日付計算の実行結果」で扱っています。
CSV を読むときの文字コード
「CSV ファイルから読み取る」の Encoding の既定は UTF-8 です。 選択肢は「UTF-8」「Unicode」「Unicode (ビッグエンディアン)」「UTF-8 (バイト オーダー マークなし)」「Unicode (バイト オーダー マークなし)」「システムの既定値」「ASCII」の7つで、Shift_JIS という名前の選択肢はありません。読んだ結果はデータテーブル CSVTable に入り、「最初の行に列名が含まれている」をオンにすると、%CSVTable[0]['氏名']% のように列名で取り出せます。
同じ内容の CSV を3つの文字コードで保存し、先頭のバイトと、UTF-8 として読んだ結果を Python で比べました。
text = "氏名,金額\n山田,1200\n"
files = {"utf8.csv": text.encode("utf-8"),
"utf8bom.csv": text.encode("utf-8-sig"),
"sjis.csv": text.encode("cp932")}
for name, b in files.items():
open(name, "wb").write(b)
head = " ".join(f"{x:02X}" for x in b[:8])
try:
as_utf8 = b.decode("utf-8").splitlines()[0]
except UnicodeDecodeError as e:
as_utf8 = f"UnicodeDecodeError: {e.reason}({e.start}バイト目)"
print(f"{name:<12} {len(b):>3}バイト 先頭: {head:<23} UTF-8で読む→ {as_utf8!r}")
utf8.csv 26バイト 先頭: E6 B0 8F E5 90 8D 2C E9 UTF-8で読む→ '氏名,金額'
utf8bom.csv 29バイト 先頭: EF BB BF E6 B0 8F E5 90 UTF-8で読む→ '\ufeff氏名,金額'
sjis.csv 20バイト 先頭: 8E 81 96 BC 2C 8B E0 8A UTF-8で読む→ 'UnicodeDecodeError: invalid start byte(0バイト目)'
先頭が EF BB BF なら BOM 付きの UTF-8、8E 81(「氏」)のように UTF-8 として読めないバイトなら Shift_JIS です。 Shift_JIS のファイルを UTF-8 のまま読むと文字化けや「CSV の読み取りに失敗しました」の原因になります。公式ドキュメントには「システムの既定値」がどの文字コードになるかの説明が無いため、確実なのは、CSV を出すシステムやツールの側で UTF-8 に保存し直し、PAD の Encoding を UTF-8 に合わせる方法です。
Web の自動化(ブラウザーの起動・入力・データ抽出)
この節では、Web ページを操作するフローの組み立て方と、事前の準備が分かります。
Web の自動化は、「新しい Microsoft Edge を起動する」などでブラウザーのインスタンス(変数 Browser)を作り、そのインスタンスを各アクションに渡して進めます。 起動アクションの主な設定です(2026年10月22日時点の日本語版リファレンス)。
| 設定 | 既定値 | 説明 |
|---|---|---|
| 起動モード | 新しいインスタンスを起動する | 開いているブラウザーを使うなら「実行中のインスタンスにアタッチする」 |
| 初期 URL | ― | 最初に開くページ |
| ブラウザーの操作方法 | ブラウザー拡張機能 | WebDriver も選べる |
| ページが読み込まれるまで待機 | オン | 読み込みのタイムアウトは 60 秒 |
| タイムアウト | 60 秒 | ブラウザーの起動を待つ時間 |
| キャッシュのクリア・クッキーの削除 | オフ | ログイン状態を残さずに始めたいときにオン |
Web の操作の流れは次のとおりです。
- 起動アクションで
Browserを作る。 - 「Web ページ内のテキスト フィールドに入力する」「Web ページのボタンを押す」などで入力・クリックする。対象の要素は、アクションの設定画面から、ページ上で要素を指して Ctrl + 左クリック で取り込む。
- 「Web ページからデータを抽出する」で値・リスト・表を取り出す。HTML の表として認識されたものは、右クリックの「Extract entire HTML table」でまとめて取れる。複数ページにまたがるときは、次へのボタンを「Set element as pager」で指定する(メニュー名は英語版のドキュメントの表記)。
- 「Close web browser」のアクションで閉じる。
Web 自動化のアクションは、既定ではマウスを動かしません。 そのため、ブラウザーを最小化していても、対象のタブが前面に無くても動きます。「Web ページでリンクをクリック」などで物理的な操作を選んだときは、ブラウザーを最小化できず、対象のタブを前面にしておく必要があります。
ブラウザーを使わずに Web と通信するアクションもあります。「Web からダウンロード」(GET・POST)と「Web サービスの呼び出し」(API の呼び出し)です。
ブラウザー拡張機能と WebDriver
| 方式 | 準備 | 注意点 |
|---|---|---|
| ブラウザー拡張機能(既定) | Edge・Chrome・Firefox の拡張機能を入れて有効にする | 拡張機能が動いていないと起動アクションで失敗する |
| WebDriver(2.62 以降) | ブラウザーの版に合う WebDriver(x64)を %LocalAppData%\Microsoft\Power Automate Desktop\WebDrivers に置く |
フローが起動したブラウザーにだけアタッチできる。Internet Explorer では使えない |
Automation ブラウザー(IE を元にした組み込みのブラウザー)は非推奨になり、今後のリリースで削除される予定と公式リファレンスに書かれています。新しいフローでは Edge・Chrome・Firefox を使います。
Web の要素は CSS セレクターで特定されます。「Web ページからデータを抽出する」の詳細設定では CSS セレクターを自分で書き直せます。CSS セレクターの書き方は、関連記事「CSSセレクタ一覧|:has()・ネスト対応の早見表と詳細度」で扱っています。
デスクトップ アプリの自動化(UI 要素とセレクター)
この節では、Windows のアプリのボタンや入力欄を、PAD がどう見分けているかが分かります。
PAD は、ボタンや入力欄を「UI 要素」として取り込み、その場所を「セレクター」という文字列で覚えています。 アクションの設定画面か UI 要素ペインで、対象を指して Ctrl + 左クリック すると取り込めます。UI 自動化のアクションは、対象のウィンドウを前面に出してから操作します。
セレクターは、親から子へ > でつないだ形です。メモ帳のウィンドウを表す例(Microsoft Learn「カスタム セレクターを作成する」)です。
:desktop > window[Name="Notes.txt - Notepad"][Process="Notepad"]
タイトルはファイル名で変わるため、そのままでは別のファイルを開いたときに見つかりません。直し方は3つあります。
| 直し方 | 書き方 | 使う場面 |
|---|---|---|
| 演算子を「含む」にする | Name が Notepad を含む |
タイトルの一部だけが毎回同じ |
| 変数を入れる | window[Name="%WindowName%"][Process="Notepad"] |
前の処理でタイトルが分かる |
| 正規表現で一致させる | 演算子「正規表現の一致」 | 番号や日付が入る |
演算子は「等しい」「含む」「等しくない」「で始まる」「で終わる」「正規表現の一致」の6種類です。変数を使えるのは、ビジュアル エディターでは「等しい」のときだけです。PAD の正規表現エンジンは .NET です(公式)。正規表現の書き方は、関連記事「正規表現 早見表|記号一覧・言語別の違い・実用パターン(実行結果つき)」で扱っています。1つの UI 要素に複数のセレクターを登録でき、先頭のセレクターで見つからないと次のセレクターが使われます。
取り込みの方式には UIA(UI Automation)と MSAA(Microsoft Active Accessibility)があります。レコーダーの「キャプチャ モード」で切り替えられ、WPF・WinForms・UWP などの新しいアプリは UIA、VB6 や従来の Win32 のアプリなど UIA で要素が取れないものは MSAA が勧められています。
レコーダーで操作を記録する
この節では、レコーダーの使い方と、記録したフローを手直しする理由が分かります。
レコーダーは、マウスとキーボードの操作を UI 要素ごとに記録して、アクションに変換する機能です。 1回の記録で、デスクトップ アプリと Web の両方の操作を記録できます。
レコーダーを開く
デザイナーのツール バーで「レコーダー」を選びます。Web を記録するなら、レコーダーの右のドットのアイコンから「新しい Web ブラウザーを起動します」を選ぶか、開いているブラウザーで記録を始めます。
記録する
「レコード」を選んで操作します。クリックすると「アクションを待つ」と表示されるので、記録されるのを待ってから次へ進みます。右クリックすると、その要素で使える操作(テキストの抽出など)が選べます。
完了して手直しする
「完了」でアクションに変換され、使った UI 要素は UI 要素ペインに入ります。不要な手順を消し、繰り返しや条件、待機を足します。
公式ドキュメントは、レコーダーを「フローの骨組みを作るもの」とし、多くの場合は手直しが要ると書いています。記録したままだと、1件分の操作しか入っておらず、画面の表示が遅いときに次のクリックが早すぎることがあります。
- 日本語の入力は、テキスト欄を右クリックして「テキスト フィールドを入力する」を選び、IME で入力して「テキストの追加」を選びます。
- ドロップダウン・日付・色の選択では、レコーダーが専用の入力画面を出します。
- アクセシビリティの情報を出さないアプリでは、「画像記録」を有効にして、画像認識と OCR で記録できます。
- スタート メニューやタスク トレイの操作は、記録されない場合があります(既知の問題)。
エラー処理(エラー発生時・ブロック エラー発生時)
この節では、フローを途中で止めないための設定と、エラーの中身を取り出す方法が分かります。
PAD の既定では、アクションでエラーが起きるとフローが止まります。 止めたくないアクションには、設定画面の「エラー発生時」で動きを決めます。複数のアクションにまとめて決めるときは「ブロック エラー発生時」で囲みます。
flowchart TD
A[アクションでエラー] --> B{アクションに<br>個別の設定}
B -->|あり| C[再試行・規則<br>・続行]
B -->|なし| D{ブロック エラー<br>発生時の中}
D -->|はい| E[ブロックの<br>再試行・例外処理]
D -->|いいえ| F[フローが<br>止まる]
| 設定(アクションの「エラー発生時」) | 選べるもの | 既定 |
|---|---|---|
| エラーが発生した場合は、アクションを再試行する | 回数と間隔(秒) | 2 秒間隔で 1 回 |
| フローの実行を継続する | 次のアクションに進む・アクションの繰り返し・ラベルに進む | ― |
| 新しいルール | 変数の設定・サブフローの実行 | ― |
| 詳細 | エラーの種類ごとに別の処理を決める | ― |
「ブロック エラー発生時」の設定です。
| 設定 | 選べるもの | 既定 |
|---|---|---|
| 名前 | ブロックの名前(表示用) | ― |
| 再試行ポリシー | なし・固定・指数 | なし |
| フロー終了エラーの処理 | オンにすると、0 での割り算やリストの範囲外の番号などの論理エラーもつかまえる | オフ |
| カスタム エラー | 「カスタム エラーのスロー」で投げた名前ごとの処理。上から順に照合される | ― |
- ブロックの再試行は、ブロックの先頭からやり直します。ブロックの中のアクションに個別の設定があれば、そちらが先に使われます。
- エラーの後は、ブロックの先頭か末尾から続きを実行するかを選べます。
- 「最後のエラーを取得」 は、直前のエラーを変数
LastErrorに入れます。%LastError.ActionName%・%LastError.Message%をメッセージやログに出すと、どこで何が起きたかが分かります。同じエラーを2度取らないように「エラーをクリアする」をオンにします。 - 「フローを停止する」で「エラー メッセージ付き」を選ぶと、呼び出し元(クラウドフローなど)にエラーとして返せます。
- UI・Web の操作で要素が見つからないときに、AI で別の要素を探して続ける「自己修復(プレビュー)」もあります。対象は1つの要素を扱うアクションの「要素が見つからない」エラーだけで、管理者による有効化が必要です。
- 1画面の表示を待っているか「Web ページのコンテンツを待機する」「ウィンドウを待機する」を、クリックの前に入れる。秒数を決めて待つ「遅延」(Wait)より安定する
- 2止まってよい所と困る所を分けたか失敗しても続けてよい処理だけを「次のアクションに進む」にする。全部を続行にすると、失敗に気づけない
- 3失敗の記録を残すか「最後のエラーを取得」の内容をテキスト ファイルやメッセージに出す。フローのプロパティで、失敗時にスクリーンショットをログに残す設定もある
- 42回目の実行で困らないか作るフォルダーが既にある、移すファイルが無い、などの場合を「ファイルが存在する場合」などで分ける
フローの定義(Robin)とコピー・共有・保存場所
この節では、PAD のフローがどんな文字で保存されているかと、それを使ったフローの渡し方が分かります。
デザイナーでアクションを選んでコピーすると、フローはテキストになります。 公式ドキュメントはこの形を「robin code(従来のフローで使われる)」と呼び、そのテキストをデザイナーに貼り付けるとアクションとして追加されると説明しています。コピーには、アクションのパラメーター・画像・UI 要素も含まれます。一度にコピーできるのは1つのサブフローです。
公式ドキュメント(無人実行でトラブルシューティング ツールを動かす例)に載っているフロー定義です。
WebAutomation.LaunchEdge.LaunchEdge Url: $'''www.microsoft.com''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 PiPUserDataFolderMode: WebAutomation.PiPUserDataFolderModeEnum.AutomaticProfile TargetDesktop: $'''{"DisplayName":"Local computer","Route":{"ServerType":"Local","ServerAddress":""},"DesktopType":"local"}''' BrowserInstance=> Browser
ON ERROR
SET LaunchFailed TO $'''true'''
END
IF LaunchFailed = $'''true''' THEN
System.RunApplication.RunApplicationAndWaitToLoad ApplicationPath: $'''C:\Program Files (x86)\Power Automate Desktop\dotnet\PAD.Troubleshooter.exe''' CommandLineArguments: $'''--diagnostic=UIAutomationDiagnosticGroup''' WindowStyle: System.ProcessWindowStyle.Normal Timeout: 120 ProcessId=> AppProcessId WindowHandle=> WindowHandle
DISABLE WAIT 30
UIAutomation.FocusWindow.FocusByInstanceOrHandle WindowInstance: WindowHandle
MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''{Tab}{Down}{Tab}{Return}''' DelayBetweenKeystrokes: 3000 SendTextAsHardwareKeys: False
EXIT Code: 0 ErrorMessage: $'''Flow Failed. Please check screenshot for troubleshooter diagnostics'''
END
この定義を読み取る小さな Python スクリプトを書き、アクション・入力・生成される変数・ブロックの対応を一覧にしました。予約語の一覧(Microsoft Learn の 46 語)と照らして、生成される変数名が予約語でないかも調べます。
import re, sys
BLOCK_START = ("IF ", "LOOP ", "ON ERROR", "SWITCH ", "FUNCTION ", "BLOCK ")
RESERVED = set(open(sys.argv[2], encoding="utf-8").read().split()) if len(sys.argv) > 2 else set()
def parse_args(rest):
"""`Name: 値` と `Name=> 変数` を順に取り出す"""
params, outs, i = [], [], 0
while i < len(rest):
m = re.compile(r"\s*(\w+)(:|=>)\s*").match(rest, i)
if not m:
break
name, sep, i = m.group(1), m.group(2), m.end()
if rest.startswith("$'''", i): # テキスト値 $'''…'''
j = rest.index("'''", i + 4) + 3
elif rest.startswith("{", i): # データテーブル { … }
depth, j = 0, i
while True:
depth += {"{": 1, "}": -1}.get(rest[j], 0); j += 1
if depth == 0:
break
else: # 数値・True/False・列挙値・変数名
j = re.compile(r"\S+").match(rest, i).end()
(outs if sep == "=>" else params).append((name, rest[i:j]))
i = j
return params, outs
def read(text):
stack = []
for no, line in enumerate(text.splitlines(), 1):
s = line.strip()
if not s:
continue
depth = (len(line) - len(line.lstrip())) // 4
if s == "END" or s == "END FUNCTION":
opened = stack.pop() if stack else "(対応なし)"
print(f"{no:>2} {' '*depth}END ← {opened} を閉じる")
continue
if s.startswith(BLOCK_START) or s == "ON ERROR":
stack.append(f"{s.split()[0]}{' ERROR' if s.startswith('ON ERROR') else ''}({no}行目)")
print(f"{no:>2} {' '*depth}{s}")
continue
m = re.match(r"([A-Z][A-Za-z]+(?:\.[A-Za-z]+)+)\s*(.*)", s)
if m:
params, outs = parse_args(m.group(2))
print(f"{no:>2} {' '*depth}アクション {m.group(1)}")
for k, v in params:
print(f"{'':>3}{' '*depth} 入力 {k} = {v[:60]}{'…' if len(v) > 60 else ''}")
for k, v in outs:
flag = " ← 予約語" if v.upper() in RESERVED else ""
print(f"{'':>3}{' '*depth} 生成 {k} => 変数 {v}{flag}")
else:
print(f"{no:>2} {' '*depth}{s}")
print("ブロックの対応:", "OK" if not stack else f"END が足りない {stack}")
src = open(sys.argv[1], encoding="utf-8").read()
read(re.search(r"```(?:text|json)\n(.*?)\n```", src, re.S).group(1))
1 アクション WebAutomation.LaunchEdge.LaunchEdge
入力 Url = $'''www.microsoft.com'''
入力 WindowState = WebAutomation.BrowserWindowState.Normal
入力 ClearCache = False
入力 ClearCookies = False
入力 WaitForPageToLoadTimeout = 60
入力 Timeout = 60
入力 PiPUserDataFolderMode = WebAutomation.PiPUserDataFolderModeEnum.AutomaticProfile
入力 TargetDesktop = $'''{"DisplayName":"Local computer","Route":{"ServerType":"L…
生成 BrowserInstance => 変数 Browser
2 ON ERROR
3 SET LaunchFailed TO $'''true'''
4 END ← ON ERROR(2行目) を閉じる
5 IF LaunchFailed = $'''true''' THEN
6 アクション System.RunApplication.RunApplicationAndWaitToLoad
入力 ApplicationPath = $'''C:\Program Files (x86)\Power Automate Desktop\dotnet\PAD…
入力 CommandLineArguments = $'''--diagnostic=UIAutomationDiagnosticGroup'''
入力 WindowStyle = System.ProcessWindowStyle.Normal
入力 Timeout = 120
生成 ProcessId => 変数 AppProcessId
生成 WindowHandle => 変数 WindowHandle
7 DISABLE WAIT 30
8 アクション UIAutomation.FocusWindow.FocusByInstanceOrHandle
入力 WindowInstance = WindowHandle
9 アクション MouseAndKeyboard.SendKeys.FocusAndSendKeys
入力 TextToSend = $'''{Tab}{Down}{Tab}{Return}'''
入力 DelayBetweenKeystrokes = 3000
入力 SendTextAsHardwareKeys = False
10 EXIT Code: 0 ErrorMessage: $'''Flow Failed. Please check screenshot for troubleshooter diagnostics'''
11 END ← IF(5行目) を閉じる
ブロックの対応: OK
この結果から分かる Robin の形をまとめます。
| 書き方 | 意味 | 例 |
|---|---|---|
モジュール.アクション.種類 |
アクションの名前 | WebAutomation.LaunchEdge.LaunchEdge |
名前: 値 |
入力のパラメーター | Timeout: 60 |
名前=> 変数 |
生成される変数(右が変数名) | BrowserInstance=> Browser |
$'''…''' |
テキストの値 | $'''www.microsoft.com''' |
SET 変数 TO 値 |
変数の設定 | SET LaunchFailed TO $'''true''' |
IF … THEN 〜 END |
条件分岐のブロック | 字下げは4文字 |
アクションの直後の ON ERROR 〜 END |
直前のアクションが失敗したときの処理 | この例では SET で失敗を記録 |
DISABLE |
無効にしたアクション | DISABLE WAIT 30 |
{ ^['列1', '列2'], [ … ] } |
データテーブルの値(^ は列名の行) |
Variables.CreateNewDatatable の入力 |
わざと END を消し、生成される変数の名前を予約語の Next にしたテキストを読ませると、次のように出ました。
1 アクション Folder.GetSpecialFolder
入力 SpecialFolder = Folder.SpecialFolder.DesktopDirectory
生成 SpecialFolderPath => 変数 Next ← 予約語
2 IF LaunchFailed = $'''true''' THEN
3 SET LaunchFailed TO $'''false'''
ブロックの対応: END が足りない ['IF(2行目)']
貼り付ける前のテキストを確かめる目安になります。PAD が貼り付けを受け付けるかどうかは、PAD のデザイナーで決まります。
フローの共有と保存場所
| 方法 | 使えるアカウント | 説明 |
|---|---|---|
| アクションをコピーしたテキストを渡す | すべて | 相手がデザイナーに貼り付ける。サブフローごとに行う |
| Power Automate ポータルで共有 | 組織のプレミアム | 共同所有者・実行のみのユーザーなどの権限を選ぶ |
| ソリューションでエクスポート | 組織のプレミアム | 別の環境へ移す |
| アカウント | フローの保存場所 |
|---|---|
| Microsoft アカウント | OneDrive の「Apps\Power Automate Desktop For Windows」 |
| 職場または学校・組織のプレミアム | Dataverse(環境ごと) |
組織のアカウントでポータルから消したフローは、一度でもコンソールでローカル実行していれば、%localappdata%\Microsoft\Power Automate Desktop\Console\Workspace\<フロー ID>\<ランダムな文字列>\script.robin の @SENSITIVE の下の行をコピーして、新しいフローに貼り付けると、アクションだけを戻せます(公式の「削除したデスクトップ フローを復元する」)。UI 要素・画像・接続は戻りません。
スケジュール実行と、外から起動する方法(実行 URL)
この節では、フローを自動で動かす方法と、それぞれに必要なライセンスが分かります。
PAD のフローを自動で起動する方法は、クラウドフローから呼ぶ方法と、実行 URL(ms-powerautomate:)を使う方法の2つです。 どちらも Premium プランか従量課金の環境が前提です(2026年10月22日時点の公式ドキュメント)。
| 方法 | 起動のきっかけ | 必要なもの |
|---|---|---|
| クラウドフローのアクション「Run a flow built with Power Automate for desktop」 | スケジュール・メール受信・ボタンなど | 職場または学校アカウント、登録したマシン、デスクトップ フロー接続、Premium(非アテンド型は Process) |
| 実行 URL・デスクトップ ショートカット | ブラウザー・コマンド プロンプト・タスク スケジューラ | PAD のインストールとサインイン、Premium か従量課金の環境 |
| キーボード ショートカット | フローのプロパティで決めたキー | ローカルで実行するフロー |
実行 URL の形は次のとおりです。フロー ID と環境 ID は、コンソールでフローを右クリック →「プロパティ」で確かめられ、実行 URL もそこに表示されます。
ms-powerautomate:/console/flow/run?workflowName=[workflowName]
ms-powerautomate:/console/flow/run?workflowId=[workflowId]
ms-powerautomate:/console/flow/run?environmentId=[environmentId]&workflowId=[workflowId]
入力変数は inputArguments に、外部名称をキーにした JSON で渡します。コマンドから渡すときは " を \" にエスケープし、ブラウザーから開くときはエスケープを外して URL エンコードする、と公式ドキュメントにあります。渡せる型はテキスト・数値・ブール値だけで、ブール値は小文字の true・false です。この2つの形を Python で作りました(フロー ID は公式ドキュメントの例の値)。
import json, urllib.parse
workflow_id = "dfd0c814-2c30-4cd8-849d-a4b2d2f4f33b" # 公式ドキュメントの例の ID
inputs = {"NewInput": "Hello", "NewInput2": 123, "NewInput3": True}
for k, v in inputs.items(): # 型の確認
assert isinstance(v, (str, int, float, bool)), f"{k}: {type(v).__name__} は渡せない"
j = json.dumps(inputs, ensure_ascii=False) # True は true になる
base = f"ms-powerautomate:/console/flow/run?workflowId={workflow_id}"
print("JSON :", j)
print("コマンド用 :", f'"{base}&inputArguments={j.replace(chr(34), chr(92) + chr(34))}"')
print("ブラウザー用:", f"{base}&inputArguments={urllib.parse.quote(j, safe='')}")
print("長さ :", len(f"{base}&inputArguments={urllib.parse.quote(j, safe='')}"), "文字")
ja = {"NewInput": "請求書_2026年10月", "NewInput2": 3, "NewInput3": False}
q = urllib.parse.quote(json.dumps(ja, ensure_ascii=False), safe="")
print("日本語の値 :", f"{base}&inputArguments={q}")
print("元に戻す :", json.loads(urllib.parse.unquote(q)))
JSON : {"NewInput": "Hello", "NewInput2": 123, "NewInput3": true}
コマンド用 : "ms-powerautomate:/console/flow/run?workflowId=dfd0c814-2c30-4cd8-849d-a4b2d2f4f33b&inputArguments={\"NewInput\": \"Hello\", \"NewInput2\": 123, \"NewInput3\": true}"
ブラウザー用: ms-powerautomate:/console/flow/run?workflowId=dfd0c814-2c30-4cd8-849d-a4b2d2f4f33b&inputArguments=%7B%22NewInput%22%3A%20%22Hello%22%2C%20%22NewInput2%22%3A%20123%2C%20%22NewInput3%22%3A%20true%7D
長さ : 196 文字
日本語の値 : ms-powerautomate:/console/flow/run?workflowId=dfd0c814-2c30-4cd8-849d-a4b2d2f4f33b&inputArguments=%7B%22NewInput%22%3A%20%22%E8%AB%8B%E6%B1%82%E6%9B%B8_2026%E5%B9%B410%E6%9C%88%22%2C%20%22NewInput2%22%3A%203%2C%20%22NewInput3%22%3A%20false%7D
元に戻す : {'NewInput': '請求書_2026年10月', 'NewInput2': 3, 'NewInput3': False}
コマンド用の行は、公式ドキュメントの例と同じ形になりました。日本語の値は1文字が %E8%AB%8B のような9文字になるため、URL が長くなります。公式ドキュメントは、URL を呼び出す側に文字数の上限があり、超えるとフローが失敗すると書いています。
タスク スケジューラから呼ぶときの設定です(公式ドキュメントの値)。
| 入れる欄 | MSI 版 | Microsoft Store 版 |
|---|---|---|
| プログラム/スクリプト | C:\Program Files (x86)\Power Automate Desktop\dotnet\PAD.Console.Host.exe |
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe |
| 引数の追加 | ms-powerautomate:/console/flow/run?workflowName=[workflowName] |
-Command "Start-Process \"ms-powerautomate:/console/flow/run?workflowName=[workflowName]"" |
- 既定では、URL やショートカットで起動するたびに確認のダイアログが出ます。コンソールの設定「フローを外部から呼び出すときに確認のダイアログを表示する」で消せますが、公式ドキュメントは、悪意のある人が共有したフローが知らないうちに動く危険があると警告しています。
- ローカルのアテンド型で同時に動かせるフローは1つです。同じフローが動いているときに URL を呼んでも、もう一度は動きません。
クラウドフローとの違い・連携
この節では、Power Automate のクラウドフローとデスクトップ フローの違いと、2つをつなぐ形が分かります。
| 項目 | クラウドフロー | デスクトップ フロー(PAD) |
|---|---|---|
| 動く場所 | Microsoft のクラウド | 自分の Windows パソコン・登録したマシン |
| 作る場所 | ブラウザー(make.powerautomate.com) | PAD のデザイナー |
| 起動のきっかけ | トリガー(スケジュール・メール受信・ファイルの作成など) | 手動・クラウドフロー・実行 URL |
| 操作する相手 | コネクタのある Web サービス(API) | 画面・ファイル・API の無いアプリ |
| パソコンの電源 | 要らない | 動かすマシンが起動している必要がある |
2つをつなぐと、「クラウドで時刻やメールをきっかけに起動し、パソコンの画面操作をさせ、結果をクラウドへ返す」流れが作れます。
flowchart TD
T[クラウドフローの<br>トリガー] --> R[PAD で構築した<br>フローを実行する]
R --> M[登録したマシン<br>アテンド・非アテンド]
M --> D[デスクトップ フローが<br>画面とファイルを操作]
D --> O[出力変数を<br>クラウドフローへ返す]
- 入力変数はクラウドフローのアクションの欄として表示され、出力変数はクラウドフローの次のステップで使えます。デスクトップ フローへの入力は 2MB まで(中国のリージョンは 1MB)です。
- 1つの接続あたり、1分間に 70 回までデスクトップ フローを実行できます。
- 非アテンド型では、そのユーザーがマシンにサインインしたままだと失敗します(後のエラー表の
SessionExistsForTheUserWhenUnattended)。
Power Fx を有効にしたフローとの違い
この節では、フローを作るときに選べる「Power Fx」を有効にすると、書き方の何が変わるかが分かります。
コンソールで新しいフローを作るときに Power Fx を有効にすると、式の書き方が Excel の数式に近い Power Fx に変わります。 同じ PAD でも書き方が大きく違うので、作る前に決めます。
| 項目 | 従来のフロー | Power Fx を有効にしたフロー |
|---|---|---|
| 式の書き方 | %NewVar + 1% |
=NewVar + 1 |
| 文字の中に値を入れる | 合計は %Total% 件 |
合計は ${Total} 件 |
| リストの番号 | 0 から(%List[0]%) |
1 から(=Index(List, 1)) |
| 変数名の大文字・小文字 | 区別しない | 区別する(2.43 以降) |
| 使う前の初期化 | ― | 必要 |
| Switch・Case・Default case | 使える | 使えない(既知の制限) |
= で始まらない入力はテキストとして扱われるため、数値やブール値も =1・=true のように = を付けて書きます。
よくあるエラーと直し方
この節では、PAD でよく出るエラーの原文から、原因と直し方を引けます。
| エラー(原文) | 原因 | 直し方 |
|---|---|---|
Failed to assume control of Microsoft Edge (Internal error or communication failure). |
ブラウザー拡張機能が入っていない・動いていない、起動が遅い、別のユーザーでブラウザーが起動している | 拡張機能を入れ直してブラウザーを再起動。起動アクションの「詳細」でタイムアウトを 120 秒に。PAD と同じユーザーでブラウザーを起動 |
Element with specified CSS selector not found.(指定された CSS セレクターを持つ要素が見つかりません。) |
ページの表示が終わる前に操作した、ページの構成が変わった | 「Web ページのコンテンツを待機する」を入れる。UI 要素のセレクターを取り直すか、変わる部分を「次を含む」にする |
Failed to get window(ウィンドウを取得するアクションの例外) |
ウィンドウのタイトルが変わった、まだ開いていない | セレクターの Name を「次を含む」や変数にする。「ウィンドウを待機する」を入れる |
Failed to click UI element.(クリックに失敗しました) |
シミュレートのクリックに対応しない要素(WPF・WinForms の一部など) | 「アクションをシミュレートする」をオフにして物理的にクリックする |
| 「このフローは、現在インストールされているものよりも新しいバージョンの Power Automate によって生成されました。」 | 新しい版で保存したフローを以前の版で開いた | PAD を最新版に更新する(上位互換は保証されない) |
UnsupportedRpaScriptSchemaVersion |
クラウドから起動したマシンの PAD が、フローを作った版より前 | マシンの PAD を最新版にする |
UIFlowAlreadyRunning |
そのマシンで別のフローが実行中 | 実行中のフローが終わるのを待つ |
AttendedUserSessionNotActive・AttendedUserNotLoggedIn |
アテンド型なのに、ユーザーがサインインしていない・ロックしている | 正しいユーザーでサインインし、ロックを解除しておく |
SessionExistsForTheUserWhenUnattended |
非アテンド型なのに、同じユーザーがマシンにサインインしている | そのユーザーをサインアウトさせる |
Read from CSV failed(CSV の読み取りに失敗しました) |
ファイルのパス・文字コード・区切り文字が合わない | Encoding と区切り記号を確かめる。Shift_JIS のファイルは UTF-8 にそろえる |
| インストールのエラー コード 1603 | 管理者権限が無い、Power Automate のプロセスが残っている | 管理者で実行し、関連のプロセスを終了。イベント ビューアーで詳細を見る |
Parameter 'Value': PowerFx type 'OptionSetValueType' isn't supported. |
Power Fx のフローで、デスクトップ フローが対応していない関数を使った | 公式の「Formula reference - desktop flows」にある関数に置き換える |
ブラウザーの操作で失敗が続くときは、PAD のヘルプにあるトラブルシューティング ツールで「UI/Web オートメーションの問題」の診断を実行すると、見つかった問題に「修正」ボタンが表示されます。
よくある質問
Q. Power Automate Desktopは無料ですか? A. 無料です。Windows 10・11 で、Microsoft アカウントか職場・学校のアカウントでサインインすれば、フローの作成と手動での実行は追加料金なしで使えます。スケジュール実行・共有・クラウドフローからの起動は Premium(ユーザー・月 2,248円、年払い、2026年10月22日時点)以上の機能です。
Q. Power Automate Desktopの読み方は? A. 「パワー オートメイト デスクトップ」です。略して PAD とも呼ばれます。現在の正式な名前は Power Automate for desktop(デスクトップ用 Power Automate)です。
Q. Windows 11には最初から入っていますか? A. 入っています。スタート メニューで「Power Automate」を検索して起動します。見つからないときは Microsoft Store から入れられます。
Q. Windows 10でも使えますか?ダウンロードはどこから? A. Windows 10(Home・Pro・Enterprise)で使えます。Microsoft Store か、Microsoft Learn の「Power Automate のインストール」にある MSI インストーラーから入れます。MSI は管理者権限が必要です。
Q. Macで使えますか? A. Mac 版はありません。対応する OS は Windows 10・11 と Windows Server で、ARM プロセッサのデバイスも対象外です。
Q. Power AutomateとPower Automate Desktopの違いは? A. Power Automate はサービス全体の名前で、クラウドで動くクラウドフローを含みます。Power Automate Desktop は、その中で Windows の画面やファイルを操作するデスクトップ フローを作るアプリです。「クラウドフローとの違い・連携」の節に表があります。
Q. 無料版で毎日決まった時刻に自動実行できますか? A. 公式ドキュメントでは、クラウドフローからのスケジュール起動も、実行 URL・デスクトップ ショートカットからの起動も、Premium プランか従量課金の環境が前提条件です。無料の範囲では、コンソールやデザイナーから手動で起動します。
Q. 実行中にパソコンを使えますか? A. Web の操作のアクションは既定ではマウスを動かさないため、ブラウザーが最小化されていても動きます。デスクトップ アプリの操作のアクションは対象のウィンドウを前面に出すので、その間に別の操作をすると失敗の原因になります。
Q. プログラミングの知識は必要ですか? A. アクションをドラッグして並べ、レコーダーで記録して作れます。変数・条件分岐・ループの考え方を知っていると、記録したフローを手直ししやすくなります。
Q. 作ったフローはどこに保存されますか?別のパソコンに移せますか? A. Microsoft アカウントでは OneDrive の「Apps\Power Automate Desktop For Windows」、職場・学校のアカウントでは Dataverse に保存されます。アクションを選んでコピーしたテキストを、別のパソコンのデザイナーに貼り付けると移せます。
Q. Excelの操作はできますか? A. できます。アクション ペインの「Excel」グループに、Excel の起動・ワークシートの読み取りと書き込み・保存などのアクションがあります。
Q. Windows 11 Homeで使えない機能はありますか? A. Home エディションでも、フローの作成・ローカルでの実行・ポータルでの管理はできます。クラウドからのデスクトップ フローの起動はできません(Microsoft Learn の表)。
まとめ
- Power Automate Desktop(PAD)は、Windows の画面・ファイル・Web の操作をアクションのフローで自動化する Microsoft の RPA。Windows 11 には最初から入っている。
- 作成・記録・手動実行・エラー処理までは無料。スケジュール起動・共有・集中管理は Premium(月2,248円・年払い)、無人実行は Process(ボット・月22,488円)。2026年10月22日時点。
- 変数は
%で囲み、リストとデータテーブルの番号は 0 から。日付の書式は .NET と同じ記号で、MMは月、mmは分。 - 条件は If・Switch、繰り返しは Loop・For each・ループ条件。演算子は16種。
- 止めたくない所には「エラー発生時」と「ブロック エラー発生時」。原因は「最後のエラーを取得」の
LastErrorで残す。 - フローはコピーすると Robin のテキストになり、
名前: 値・名前=> 変数・IF … ENDの形。テキストを渡すとフローを共有できる。 - 外から起動する実行 URL は
ms-powerautomate:/console/flow/run?…。入力は JSON で、ブラウザーからは URL エンコードする。
参考・出典
確認日はいずれも 2026年10月22日です。
- Microsoft Learn「デスクトップ フローの概要」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/introduction
- Microsoft Learn「前提条件と制限」(サインイン アカウントの比較):https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/setup
- Microsoft Learn「Power Automate のインストール」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/install
- Microsoft Learn「Install Power Automate silently」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/install-silently
- Microsoft Learn「Windows 11 で Power Automate を開始する」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/getting-started-windows-11
- Microsoft Learn「Microsoft アカウントで開始する」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/getting-started-msa
- Microsoft Learn「Premium RPA features」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/premium-features
- Microsoft「Power Automate の価格」:https://www.microsoft.com/ja-jp/power-platform/products/power-automate/pricing
- Microsoft「Power Automate pricing」:https://www.microsoft.com/en-us/power-platform/products/power-automate/pricing
- Microsoft Learn「Power Automate for desktop released versions」:https://learn.microsoft.com/en-us/power-platform/released-versions/power-automate-desktop
- Microsoft Learn「コンソール」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/console
- Microsoft Learn「Debug a desktop flow」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/debugging-flow
- Microsoft Learn「変数の管理」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/manage-variables
- Microsoft Learn「変数とパーセント表記を使用する」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/variable-manipulation
- Microsoft Learn「変数データ型」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/variable-data-types
- Microsoft Learn「Data type properties」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/datatype-properties
- Microsoft Learn「Reserved keywords in desktop flows」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/reserved-keywords
- Microsoft Learn「Conditional actions」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/conditionals
- Microsoft Learn「ループ アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/loops
- Microsoft Learn「フロー制御アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/flowcontrol
- Microsoft Learn「ファイル アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/file
- Microsoft Learn「フォルダー アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/folder
- Microsoft Learn「Text actions」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/text
- Microsoft Learn「ブラウザー自動化アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/webautomation
- Microsoft Learn「UI オートメーション アクション」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/uiautomation
- Microsoft Learn「Scripting actions」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/scripting
- Microsoft Learn「Power Automate ブラウザー拡張機能をインストールする」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/install-browser-extensions
- Microsoft Learn「Automate webpages」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/automation-web
- Microsoft Learn「Build a custom selector」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/build-custom-selectors
- Microsoft Learn「Record desktop flows」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/recording-flow
- Microsoft Learn「デスクトップ フローでのエラー処理」:https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/errors
- Microsoft Learn「Self-healing」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/self-healing
- Microsoft Learn「Share/export a desktop flow」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/how-to/share-export-desktop-flows
- Microsoft Learn「Restore a deleted desktop flow」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/how-to/restore-deleted-desktop-flow
- Microsoft Learn「Run the Power Automate Desktop troubleshooter in unattended mode」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/how-to/run-troubleshooter-unattended
- Microsoft Learn「Work queues」(Robin のスニペット):https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/workqueues
- Microsoft Learn「Run desktop flows via URL or desktop shortcuts」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/run-desktop-flows-url-shortcuts
- Microsoft Learn「Trigger desktop flows from cloud flows」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/trigger-desktop-flows
- Microsoft Learn「Power Fx in desktop flows」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/power-fx
- Microsoft Learn「Get started with Copilot in Power Automate for desktop」:https://learn.microsoft.com/en-us/power-automate/desktop-flows/copilot-in-power-automate-for-desktop
- Microsoft Learn「"Failed to assume control of Microsoft Edge/Chrome/Firefox" error」:https://learn.microsoft.com/en-us/troubleshoot/power-platform/power-automate/failed-to-assume-control-of-edge-chrome-firefox-error
- Microsoft Learn「Errors when running attended or unattended desktop flows」:https://learn.microsoft.com/en-us/troubleshoot/power-platform/power-automate/desktop-flows/troubleshoot-errors-running-attended-or-unattended-desktop-flows
- Microsoft Learn「カスタム日時形式文字列」:https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/custom-date-and-time-format-strings
- MicrosoftDocs/power-automate-docs(GitHub):https://github.com/MicrosoftDocs/power-automate-docs
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Power Automate Desktopとは|使い方・無料の範囲とエラー処理」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。