更新履歴(4件・最終更新 2026年08月02日)
この記事に加えた変更の記録です。アーカイブした更新前のバージョンは、DOI付きの固定URLから読めます。
- 記事の冒頭に「この記事の知識マップ」節を追加しました。本文で扱っている概念とその関係を、要約・図・詳細ページへのリンクにまとめたものです。本文の主張は変えていません。
- 外部レビュー(1283件)への対応として本文を更新しました。個々の変更内容は、この下の履歴を参照してください。
- 壊れやすいセレクターの対比表(何が起きるか、直し方)と記法、使える演算子、複数セレクターのフォールバックを追加しました。無人実行のチェックリストを11項目の表にまとめ、マシン登録とデスクトップフロー接続の手順、アクション列の設定表を追加しました。ライセンス価格は2026年7月時点の日本向け公開価格として出典付きで記載しています。
- 本文中の関連記事へのリンクの文言が、リンク先の現在のタイトルと食い違っていたのを、実際のタイトルに揃えました。本文の内容は変えていません。
- 初版公開
この記事を引用する(DOI: 10.5281/zenodo.21590105)
この記事はZenodoにアーカイブされています。常に最新版へ解決されるDOIと、いま表示している版に固定されたDOIの両方を下に示します。
小村 豪(2026)「Power Automate for desktopで基幹システムへの転記を自動化する ── Excel・紙からの手入力をUI自動化に置き換える」合同会社小村ソフト. https://doi.org/10.5281/zenodo.21590105 https://staging.comcomponent.com/blog/power-automate-desktop-legacy-app-data-entry/
- DOI(最新版)
- 10.5281/zenodo.21590105
- DOI(この版)
- 10.5281/zenodo.21733064
「Webの注文フォームやメールで届いた注文を、担当者が毎日、社内の販売管理システムに手で打ち直している」「勤怠や申請のExcelを月末にまとめて基幹システムへ転記するのに丸2日かかる」。こういう相談をよく受けます。共通するのは、転記先が10年、20年と使われてきた古い業務システム(WinFormsやVB6時代の画面、専用クライアント)で、APIもCSV取込機能もない、ということです。
システムを改修すれば根本解決ですが、ベンダーがもういない、ソースコードがない、改修費用が見合わない、という理由で手入力が続いているケースは珍しくありません。この隙間を埋める現実的な道具が、Power Automate for desktop (PAD)によるUI自動化です。人がやっているキーボード入力とマウス操作をそのまま再現するので、転記先のシステムに手を入れずに自動化できます。Windows 11なら追加インストールなしで試せる手軽さもあります。
ただ、UI自動化は「最初に動かすのは簡単、安定して動かし続けるのは難しい」道具でもあります。この記事では、転記業務に絞って、そもそもUI自動化を選ぶべきかの判断から、無料で使える範囲とライセンスの境界、安定稼働のための設計、失敗時のリカバリまでを整理します。Power Automate全体の使い分けやエラー処理の一般論は「Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計」で書いたので、こちらは転記業務への各論です。
1. まず結論
- UI自動化は最後の手段です。転記先にCSV取込・データベース直接投入・API・ファイル連携の口がないか先に探します。1つでもあれば、そちらのほうが確実に安定します。
- PADはWindows 11に標準で組み込まれており、Windows 10でも無料でインストールできます。レコーダーと400以上のアクションで、Excelを読んで画面に入力する転記フローはノーコードで組めます。12
- フローを作って手元で実行する(有人実行)だけなら追加費用はかかりません。職場・学校アカウントでもMicrosoftアカウントでも同様です。一方、クラウドフローからの自動起動・スケジュール実行・フロー共有にはPower Automate Premiumライセンスが必要になります。34
- 夜間バッチのような無人実行(unattended)には、さらにマシン登録とPower Automate Processライセンスが必要です。技術面でも「全ユーザーがサインアウト済みであること」など固有の前提があります。56
- 安定稼働の鍵はセレクターの作り方・要素待機・1件単位の例外処理の3点です。固定のWaitを並べたフローは、いつか必ず壊れます。789
- 失敗時に「どこまで入力されたか」が分かるよう、入力元Excelに状態列と登録番号列を持たせ、1件ごとに書き戻す設計を最初から入れます。これで再実行しても二重入力が起きません。
- 画面変更で壊れる宿命はなくならないため、件数が多い・止められない・対象アプリの更新が頻繁という業務は、データ連携開発や基幹システム改修の領域です。線引きは8章で整理します。
この記事の知識マップ
Power Automate for desktopのデスクトップフローは、セレクターでウィンドウ内のUI要素を特定し、レコーダーで骨組みを記録しながら、APIやCSV取込を持たない基幹システムへの手入力転記を人の操作の再現によって自動化する。手元で動かす有人実行は追加費用なしで使えるが、クラウドフローから呼び出す有人実行にはPower Automate Premiumが要り、夜間の無人実行にはさらにマシン登録とPower Automate Processライセンス、全ユーザーのサインアウト、作成時と同じ画面解像度の固定が前提になる。マシンの直接接続はWindows 10/11のHomeエディションでは使えない。入力元Excelに状態列を持たせて1件ごとに書き戻す設計は、失敗時の二重入力を防ぐための鍵となる。
flowchart LR
accTitle: Power Automate for desktopによる基幹システム転記自動化の知識マップ
accDescr: デスクトップフローがセレクターとレコーダーで基幹システムの画面操作を自動化し、無人実行がマシン登録・ライセンス・サインアウト・解像度固定を前提とすること、状態列による再実行安全設計が二重入力を防ぐことを示す図。
power_automate_desktop_flow["Power Automate デスクトップフロー"]
legacy_business_system["基幹システム(レガシー業務システム)"]
ui_selector["セレクター(UI要素の特定方法)"]
pad_recorder["レコーダー(PAD)"]
on_block_error["On Block Errorアクション"]
attended_rpa["有人実行(attended)"]
unattended_rpa["無人実行(unattended)"]
machine_registration["マシン登録"]
power_automate_premium_license["Power Automate Premiumユーザーライセンス"]
power_automate_process_license["Power Automate Processライセンス"]
unattended_session_requirement["無人実行のサインアウト要件"]
unattended_resolution_fixing["無人実行時の画面解像度の固定"]
status_column_tracking["状態列による再実行安全設計"]
duplicate_entry_risk["二重入力のリスク"]
excel["Excel"]
home_edition["Windows Homeエディション"]
power_automate_desktop_flow -->|"自動化する"| legacy_business_system
power_automate_desktop_flow -->|"利用する"| ui_selector
pad_recorder -->|"利用する"| ui_selector
power_automate_desktop_flow -.->|"利用する"| pad_recorder
power_automate_desktop_flow -.->|"利用する"| on_block_error
power_automate_desktop_flow -->|"利用する"| attended_rpa
power_automate_desktop_flow -.->|"利用する"| unattended_rpa
unattended_rpa -->|"前提とする"| machine_registration
machine_registration -->|"前提とする"| power_automate_premium_license
unattended_rpa -->|"前提とする"| power_automate_process_license
power_automate_process_license -->|"前提とする"| machine_registration
unattended_rpa -.->|"前提とする"| unattended_session_requirement
unattended_resolution_fixing -->|"推奨される対応"| unattended_rpa
status_column_tracking -->|"軽減する"| duplicate_entry_risk
power_automate_desktop_flow -.->|"利用する"| excel
status_column_tracking -->|"利用する"| excel
machine_registration -->|"両立しない"| home_edition
attended_rpa -.->|"前提とする"| power_automate_premium_license
図の実線は常に成り立つ関係、破線は条件付きの関係です(成立条件は詳細ページの各関係の説明に記載)。関係すべての一覧(全18件、根拠・確度つき)と主要概念の定義は知識マップ詳細ページにまとめています。データ: JSON-LD / Turtle
2. 転記作業の何が問題か
Excelや紙から基幹システムへの転記は、「単純作業に時間を取られる」以上の問題を抱えています。相談を受けていて共通するのは次の3つです。
- 時間が締め日に集中する。日々の受注入力ならまだ分散しますが、月末締めの請求処理や勤怠集計は、締め日直後の1〜2日に転記が集中します。その期間、担当者は他の仕事がほぼできません。残業や応援で吸収している会社が多いはずです。
- 入力ミスが下流まで流れる。桁の打ち間違い、行のずれ、商品コードの取り違え。転記ミスは請求書や在庫数に化けてから発覚するので、原因調査と訂正の手間は入力ミス自体の何倍にもなります。ダブルチェックを挟めばミスは減りますが、その分時間は増えます。
- その人しかできない作業になる。「この画面はこの順番で入れないとエラーになる」「この得意先だけは特殊な入れ方をする」といったノウハウが担当者の頭の中に溜まり、休まれると業務が止まります。
自動化の価値は時間短縮だけではありません。フローは決めた通りにしか入力しないので転記ミスがなくなり、手順がフローとして形に残るので属人化も緩和されます。締め日の山を平らにできることも大きいです。
なお、転記元が紙やFAXの場合は、その手前に「読み取り」の工程が必要です。FAX注文書のOCRについては同時公開の「FAX注文書をAI Builderで読み取ってPower Automateで処理する」で扱っているので、この記事では転記元は「Excelなどのデータになっている」前提で進めます。
3. 自動化手段の選択肢 ── UI自動化は最後の手段
最初に強調したいのは、画面操作の自動化(UI自動化)は選択肢の最後だということです。UI自動化は画面のレイアウトや解像度、応答速度といった「表示の都合」に依存するため、どれだけ丁寧に作っても、データを直接受け渡す方式より壊れやすいのは避けられません。転記先の基幹システムに次のような口がないか、先に確認します。
| 連携手段 | 確認すること | 安定性 | 備考 |
|---|---|---|---|
| CSV・固定長ファイルの取込機能 | メニューの奥に「外部データ取込」「一括登録」がないか。ベンダーのマニュアル・サポートに確認 | 高 | 古い業務システムでも意外と持っていることが多い。取込ファイルの生成はPADやPowerShellで自動化できる |
| データベース直接投入 | DBの種類と接続情報が分かるか。ベンダーの保守契約上、直接書込みが許されるか | 高 | 業務ロジック(採番・整合性チェック)を迂回する危険があるため、参照は直接・更新は慎重に。要検証 |
| API・連携ミドルウェア | 型番の新しいパッケージなら連携オプションがないか | 高 | オプション費用と天秤にかける |
| ファイル連携(監視フォルダ) | 指定フォルダに置いたファイルを取り込む仕組みがないか | 高 | 帳票システムや倉庫システムでよくある形 |
| UI自動化(PAD) | 上のいずれもない場合 | 中 | 画面に手を入れずに済む唯一の方法。この記事の主題 |
もう1つの選択肢は、転記を「なくす」方向、つまり基幹システム側の改修や作り直しです。VB6アプリに取込機能を追加する、あるいはWeb化して受注の入口から作り替える判断については「VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方」と「WindowsアプリのWeb化、しない方がいいケース ── 判断表と「分割」という現実解」で整理しています。改修には開発費がかかるため、まずPADで自動化して時間を稼ぎ、業務量が増えて限界が見えたら改修に投資する、という順番も現実的です。
4. Power Automate for desktopの基本
導入のハードルは低い
PADはWindows 11に標準で組み込まれています。スタートメニューで「Power Automate」を検索すればアプリが見つかり、初回起動時に自動でダウンロードされて使い始められます。2 Windows 10やWindows Server 2016でも利用権があり、ダウンロードセンターから無料でインストールできます。2 インストール方式はMicrosoft Store版とMSIインストーラー版があり、後述するクラウド連携(マシン登録)まで見据えるなら、マシンランタイムアプリを一緒に入れられるMSI版を選びます。10
レコーダーで骨組みを作る
PADには操作を記録してアクション列に変換するレコーダーがあります。マウスとキーボードの操作をUI要素との関係で記録してくれるので、転記フローの骨組み作りには十分実用的です。ここで転記業務に効くのが、記録方式にUIA (UI Automation)とMSAA (Microsoft Active Accessibility)の2つを選べることです。UIAはWPF・WinForms等の比較的新しいアプリ向けの推奨方式、MSAAはVB6やクラシックWin32のようなUIAで要素が取れない古いアプリのための方式です。古い基幹システムの画面で要素がうまく掴めないときは、レコーダーの記録モードをMSAAに切り替えると掴めることがあります。11
ただし、レコーダーはあくまで骨組み用です。条件分岐やループは記録できないので、記録後にデザイナーで編集して仕上げるのが前提です。11
UI要素とセレクター
PADは画面上のボタンやテキストボックスを「UI要素」として記憶します。実体は、ウィンドウ階層と属性の組み合わせで要素を特定するセレクターです。転記フローの寿命は、ほぼこのセレクターの作り方で決まります。連番のインデックスや動的に変わるIDがセレクターに含まれていると、見た目が同じ画面でもある日突然掴めなくなります。
セレクターは>で階層(親子関係)を表し、各要素を要素[属性="値"]の形で書きます。たとえばメモ帳のウィンドウなら:desktop > window[Name="Notes.txt - Notepad"][Process="Notepad"]という形です。7 レコーダーが自動生成したセレクターは、この「値」を画面に表示されていたそのままの文字列で固定するため、次のような壊れ方をします。
| 壊れやすいセレクター | 何が起きるか | 直し方 |
|---|---|---|
window[Name="受注入力 - 2026/07/18"]のように、日付や件数を含むタイトルを完全一致で指定している |
日付が変わった翌日に、同じ画面なのに一致しなくなる | 属性Nameの演算子を「Equal to」からContainsに変え、値を「受注入力」だけにする |
pane > pane > pane > editのように、器(ペイン)の階層を深く固定している |
画面に枠が1つ追加されただけで階層がずれ、掴めなくなる | 中間の階層を無効にして、安定した親ウィンドウと対象要素だけを残す |
| 兄弟要素の並び順(3番目のEditなど)に依存している | 入力項目が1つ増減しただけで、隣の欄に入力してしまう | 順序ではなくId(AutomationId)など要素固有の属性で特定する。取れない場合はMSAAでの再取得も試す |
edit[Name="得意先: 山田商事"]のように、データ由来の文字列を完全一致で指定している |
得意先が変わるたびに失敗する | 変わる部分をPADの変数(%CustomerName%)に置き換える、またはRegular expression matchを使う |
セレクターの編集画面で使える演算子は、Equal to / Not equal to / Contains / Starts with / Ends with / Regular expression match の6つです(正規表現の方言は.NET)。ただし、視覚エディターで変数を使えるのは「Equal to」のときだけなので、「変数で一部を差し替える」と「Containsで部分一致にする」は排他だと考えておきます。7
そのうえで、重要な操作には予備のセレクターを登録します。1つのUI要素には複数のセレクターを持たせられ、上から順に試して失敗すると次のセレクターへフォールバックします。壊れたときはRepair selector機能で修復候補を生成できます。この考え方自体は全体ガイドでも触れていますが、転記フローでは寿命に直結するため本文で具体例まで示しました。7
1つ、転記業務ならではの注意があります。UI自動化のアクションは、対象ウィンドウが前面にあることを前提に動き、前面になければ自動的に前面へ持ってきます。12 つまり実行中のPCは基本的に「フローに貸し切り」です。担当者が同じPCで別作業をしながら流す運用は、誤クリックや誤入力のもとになるため避けます。
転記の基本構成: Excelで読んで、画面に書く
転記フローの基本形は「Excelアクションで読む → ループで1件ずつUI操作で書く」です。Launch Excelでファイルを開き、Read from Excel worksheetで範囲を読み取るとデータテーブル変数になります。「先頭行を列名として使う」オプションを付けておくと、後続のループでCurrentItem['得意先コード']のように列名で値を参照でき、列の並び替えに強くなります。13 結果の書き戻しにはWrite to Excel worksheetを使います。行の末尾に追記したい場合は、Get first free row on columnで空き行を探せます。13
5. 無料で使える範囲とライセンスの境界
PADの導入判断で必ず聞かれるのが「どこまで無料で、どこから有料か」です。境界は「作る・手で動かす」と「自動で動かす・組織で管理する」の間にあります。
| できること | Microsoftアカウント | 職場・学校アカウント(追加ライセンスなし) | Power Automate Premium |
|---|---|---|---|
| フロー作成・レコーダー・400以上のアクション・例外処理 | ○ | ○ | ○ |
| フローの保存先 | OneDrive (個人) | 既定環境のDataverse | 複数環境のDataverse |
| PADのコンソールから手動で実行(有人実行) | ○ | ○ | ○ |
| クラウドフローからの起動(スケジュール・イベント起動) | × | × | ○ |
| フローの共有・実行ログの集中管理 | × | × | ○ |
作成と手動実行は、どのアカウントでも追加費用なしです。34 Microsoftアカウントの場合はフローがOneDriveに保存され、職場・学校アカウントの場合は既定環境のDataverseに保存されます。会社で使うなら、後からの管理を考えて職場アカウントで始めるのが基本です。4
境界を越えるのは「人がボタンを押さなくても動く」ようにしたくなったときです。デスクトップフローを決まった時刻やイベントで起動するには、クラウドフローから呼び出す構成にする必要があり、これには次の準備が要ります。14
- マシン登録: 実行するPCをPower Automateのクラウドに登録します。MSI版に含まれるマシンランタイムアプリでサインインすると登録されます。なお、Windows 10/11のHomeエディションはこの直接接続に対応していません。10
- デスクトップフロー接続: クラウドフローがそのマシンにサインインするための接続(Windowsアカウントの資格情報)を作ります。14
- ライセンス: 接続を作成するユーザーが、実行形態に応じたライセンスを持っている必要があります。14 人がサインインしているPC上で動かす有人実行(attended)ならPower Automate Premium(attended RPA権利を含むユーザーライセンス)が必要です。106
- 無人実行(unattended)にはさらにPower Automate Processライセンスをマシンに割り当てます。Processライセンスはユーザーではなくマシン(またはフロー)に付くライセンスで、マシン1台につき1つの無人実行枠(無人ボット)が得られます。注意点として、Processライセンスを割り当てるマシンは、Premiumライセンスを持つユーザーによって登録済みであることが前提です。つまりProcessだけ買ってもPremiumユーザーがいないと構成できません。56
マシン登録とデスクトップフロー接続の手順
ここが導入で一番つまずくところなので、操作の順番と項目名を書き出しておきます(項目名は英語版のラベルを併記します)。
- マシンランタイムアプリを入れる。PADをMSIインストーラーで入れるとき、インストール画面の「Power Automateクラウドポータルに接続するためのマシンランタイムアプリをインストールする(Install the machine-runtime app to connect to the Power Automate cloud portal)」にチェックを入れます。10
- サインインして登録する。スタートメニューから「Power Automate machine runtime」を起動してサインインすると、その時点で選択されている環境にマシンが自動登録されます。未登録の場合は実行環境を選ぶよう促されます。登録が済むと、マシン名(Machine name)・説明(Machine description)・環境(Machine environment)が表示されます。10
- 前提条件を確認する。登録するユーザーには環境の「環境メーカー(Environment Maker)」または「Desktop Flows Machine Owner」ロールが必要です。直接接続はPAD 2.8.73.21119以降が前提で、Windows 10/11のHomeエディションでは使えません。10
- 登録を確認する。Power Automateポータルで「Monitor(監視)」>「Machines(マシン)」を開くと、登録済みマシンの一覧・状態・実行中のフロー数が見られます。10
- デスクトップフロー接続を作る。クラウドフロー側でデスクトップフローのアクションを追加し、アクション右上の「…」から新しい接続の追加を選び、「接続(Connect)」欄で「マシンに直接(Directly to machine)」を選択、マシン名と、そのマシンにサインインするWindowsアカウントの資格情報を入力して作成します。10
- 無人ボットを割り当てる(無人実行のみ)。ポータルのマシン詳細ページで「設定(Settings)」を開き、「無人ボット(Unattended bots)」のスライダーでプロセス容量を割り当てて保存します。ここで割り当てた数が、そのマシンで同時に走らせられる無人実行の本数になります。15
まとめると、「担当者が朝ボタンを押して、目の前で転記が流れるのを見ている」運用なら無料範囲で完結します。「夜中に勝手に終わっている」運用にはPremium+Process(+登録済みマシン)が必要です。費用感の目安として、2026年7月時点の日本向け公開価格は、Power Automate Premiumが1ユーザーあたり月額2,248円、Power Automate Processが1ボット(=マシン1台分の無人実行枠)あたり月額22,488円です(いずれも年払い・税別)。16 無人化の最小構成は「Processライセンス1ボット+Premiumユーザー1人」なので、月額で約2万5千円、年額で約30万円が固定費として乗る計算です。「毎晩30分の転記を無人化するために年30万円払う価値があるか」という比較になります。価格は改定されるので、判断の前にPower Automateの価格ページで最新の金額を確認してください。転記の所要時間が1日30分程度なら、まず無料の有人実行で始めて、件数が増えてから無人化を検討する順番で十分です。ライセンス全体の考え方(標準/プレミアムコネクタの境界を含む)は同時公開の「Power Automateのライセンスと標準・プレミアムコネクタの境界」に詳しくまとめています。
6. 安定して動かすための設計
固定Waitではなく「要素を待つ」
古い基幹システムは、検索や登録の応答時間が負荷によって大きく揺れます。「3秒待つ」のような固定Waitで調整したフローは、システムが遅い日に必ず壊れます。Wait for window contentアクションで「特定のUI要素やテキストが現れる(消える)まで待つ」形にするのが基本です。8 ウィンドウの取得(Get window)にもタイムアウトを設定でき、「見つからなければ指定秒数で失敗」とするか「現れるまで待つ」かを選べます。8 「登録完了のメッセージが表示されるまで待ってから次の行へ進む」という待ち方が、転記フローでは特に重要です。待たずに次の入力を始めると、前の行の登録が終わっていないまま画面が切り替わり、データが混ざります。
例外処理は「1件単位」で組む
転記フローの例外処理は、フロー全体ではなくループの中の1件分をOn Block Errorで囲むのが定石です。エラー時はその行の失敗内容を記録して、画面を初期状態(入力画面を閉じてメニューに戻す等)に戻し、次の行へ進みます。こうすると、100件中1件だけ商品コードが間違っていても、99件は入力が終わり、失敗した1件だけが人の手に残ります。一時的なエラー(応答遅延など)にはアクション単位のリトライ設定も併用できます。9 エラー処理の細かい作法(Get last errorでのエラー内容取得、後片付けの設計など)は全体ガイドと、同時公開の「Power Automateのエラー処理とリトライ設計」に譲ります。
失敗しても「どこまで入力したか」が分かるようにする
UI自動化には、Webシステムのようなトランザクションがありません。フローが途中で落ちたとき、「どの行まで基幹システムに登録済みか」が分からないと、再実行で二重入力するか、全件目視で突き合わせるかの二択になってしまいます。これを防ぐ設計が2つあります。
- 入力元Excelに状態列を持たせる。「未処理」「処理中」「完了」「エラー」の状態列と、基幹システムが採番した登録番号の列を用意します。1件の入力を始める前に「処理中」にし、登録完了を画面で確認して登録番号を読み取ってから「完了」+登録番号を書き戻します。フローの対象は常に「未処理」の行だけにするので、何度再実行しても入力済みの行には触りません(再実行安全)。
- 「処理中」のまま残った行だけは人が確認する。フローが落ちるとしたら入力の途中なので、疑わしいのは「処理中」の行だけです。再実行の前にその行だけ基幹システム側を確認すればよく、突き合わせ範囲が100件から1件になります。
この状態列は、そのまま実行記録にもなります。「昨日の転記は全部終わったのか」が、フローの実行履歴を見なくてもExcelを開けば分かる。現場に説明しやすい形です。
無人実行の環境の罠
有人実行では動いていたフローが、無人化した途端に動かなくなる相談は本当に多いです。原因はだいたい環境の差にあります。
- セッションの前提: 無人実行では、Power Automateが対象マシンにリモートデスクトップ(RDP)セッションを新しく作り、実行後にサインアウトします。実行中、対象マシンの画面はロックされたままです。前提としてマシンは全ユーザーがサインアウト済みでなければならず、Windows 10/11では、誰かのセッションが(ロック状態でも)残っていると実行に失敗します。Windows Serverの場合は、接続と同じユーザーのロック済みセッションが残っているとエラーになります。保守作業のあと「ロック」や「切断」で離席する癖があると、夜のフローが止まります。必ずサインアウトが合言葉です。5
- 権限: 接続に使うユーザーは、そのマシンにRDPセッションを作れる必要があります(通常はRemote Desktop Usersグループへの所属)。また、無人実行は管理者権限への昇格を伴う操作をサポートしません。5
- 画面解像度: RDPセッションの既定解像度は、フローを作ったときの画面と違うことがあります。解像度が下がると、作成時には見えていたUI要素が画面外に隠れて「要素が見つからない」で失敗したり、座標系の操作が別の場所を押したりします。5 対策として、フローのプロパティで「無人実行時の画面解像度」を作成時と同じ値に固定できます。17 DPIスケーリングの違いも同種の失敗原因になるため、作成時と実行時で100%に揃えておくのが無難です。18
無人化チェックリスト
無人実行の前提はライセンス・登録・環境・運用にまたがっていて、どれか1つ欠けるだけで動きません。5章と6章に出てきた条件を1枚にまとめておきます。無人化に踏み切る前にこの表を上から潰してください。
| 区分 | 確認すること | 欠けているとどうなるか |
|---|---|---|
| ライセンス | 接続を作るユーザーがPower Automate Premiumを持っている6 | マシン登録・接続作成ができない |
| ライセンス | 対象マシンに無人ボット(Processライセンス由来のプロセス容量)を割り当てた15 | 無人実行が始まらない |
| 登録 | MSI版のマシンランタイムアプリでマシンを登録済み10 | クラウドフローから呼び出せない |
| 登録 | 対象マシンがWindows 10/11のHomeエディションではない10 | 直接接続が使えない |
| セッション | 実行時刻に全ユーザーがサインアウト済み(ロック・切断のまま残さない)5 | 実行に失敗する |
| 権限 | 接続に使うユーザーがRDPセッションを作れる(Remote Desktop Usersグループ)5 | セッションを作成できずに失敗する |
| 権限 | フローに管理者権限への昇格を伴う操作が含まれていない5 | サポート外で失敗する |
| 画面 | 無人実行時の画面解像度をフロー作成時と同じ値に固定した17 | 要素が画面外に隠れて見つからない |
| 画面 | DPIスケーリングを作成時・実行時とも100%に揃えた18 | 要素の認識や座標操作がずれる |
| 運用 | 保守作業のあとは「ロック」ではなく「サインアウト」する運用を関係者に周知した | 夜間フローが止まる |
| 運用 | 入力元Excelの状態列で、翌朝どこまで進んだかを人が確認できる | 失敗時に手戻りの範囲が読めない |
このあたりを検証してから、スケジュール起動(平日の毎朝6時に実行、など)をクラウドフロー側で設定します。営業日判定や月末処理を含むスケジュール設計は、同時公開の「Power Automateの定期実行フローと営業日設計」で扱っています。
7. 転記フローの実例設計
ここまでの部品を組み合わせて、「注文一覧Excel → 基幹システムの受注入力画面 → 結果をExcelへ書き戻し」という典型的な転記フローを設計するとこうなります。
flowchart TD
Start([開始: 手動またはクラウドフローから起動]) --> ReadX[Read from Excel worksheet<br/>注文一覧を読み取り 先頭行は列名]
ReadX --> Filter{状態列が「未処理」の行はあるか}
Filter -- ない --> Report[処理結果を集計してログ・通知] --> End([終了])
Filter -- ある --> Launch[基幹システムを起動してログイン<br/>メニュー画面の表示を要素待機で確認]
Launch --> Loop[未処理の行を1件ずつループ<br/>ループ内をOn Block Errorで囲む]
Loop --> Mark[状態列を「処理中」に更新]
Mark --> Entry[受注入力画面を開き項目を入力<br/>画面遷移ごとにWait for window content]
Entry --> Confirm[登録ボタン → 完了メッセージを待機<br/>採番された登録番号を画面から取得]
Confirm --> WriteBack[状態列を「完了」にし登録番号を書き戻し]
WriteBack --> Loop
Loop -. 1件でエラー発生 .-> Handler[エラー内容を行に記録<br/>登録前の失敗は「エラー」/登録後の失敗は「処理中」のまま<br/>画面をメニューまで戻して次の行へ]
Handler --> Loop
Loop -- 全件処理済み --> Close[基幹システムをログアウトして閉じる] --> Report
この図をPADのアクション列に落とすと、次の並びになります。デザイナー上でこの順にアクションを積んでいけば、上の図がそのまま動く形になります。
| # | アクション | 設定のポイント |
|---|---|---|
| 1 | Launch Excel | 注文一覧のパスを指定して開き、Excelインスタンスを変数で受け取る |
| 2 | Read from Excel worksheet | ワークシートの使用可能な値をすべて取得し、詳細設定で「範囲の最初の行に列名が含まれています」をオンにする。結果はExcelData |
| 3 | Set variable | RowIndexに2を代入する(先頭行が列名なので、データは2行目から) |
| 4 | Run application | 基幹システムを起動する(常駐運用ならGet windowで既存ウィンドウを掴む) |
| 5 | Wait for window content | ログイン後のメニュー画面に固有の要素が表示されるまで待つ |
| 6 | For each | ExcelDataを1行ずつCurrentItemで回す |
| 7 | If | CurrentItem['状態']が「未処理」でなければ、RowIndexをIncrease variableで1増やしてからNext loopで読み飛ばす |
| 8 | On block error | 以降9〜13を1件分のブロックとして囲み、エラー時の移動先を14のラベルにする |
| 9 | Write to Excel worksheet | RowIndex行の状態列に「処理中」を書き込む |
| 10 | Populate text field in window | CurrentItem['得意先コード']のように列名で値を取り出し、各入力欄へ入れる。日付・数値は文字列に整形してから渡す |
| 11 | Press button in window | 「登録」ボタンを押す |
| 12 | Wait for window content | 「登録が完了しました」に相当する要素が現れるまで待つ(固定Waitにしない) |
| 13 | Get details of the UI element in window → Write to Excel worksheet | 採番された登録番号を画面から読み取り、RowIndex行の状態列を「完了」に、登録番号列にその値を書き込む |
| 14 | (エラー処理ブロック) Get last error → Write to Excel worksheet | エラー内容を取得してRowIndex行のエラー列に記録し、Close windowなどで画面をメニューまで戻す |
| 15 | Increase variable | RowIndexを1増やしてループの先頭へ戻る |
| 16 | Close Excel | 「ドキュメントを保存」で保存して閉じ、基幹システムもログアウトして閉じる |
RowIndexを別変数で持っているのは、For eachが行番号を返さないためです。読み飛ばした行でも必ず1増やす(手順7)ようにしておかないと、書き戻し先が1行ずつずれていきます。
設計上のポイントを補足します。
- 入力値の検証はUI操作の前にやる。商品コードの桁数、数値項目に文字が入っていないか、必須項目の欠落。Excelを読んだ直後にフロー側で検証し、おかしい行は基幹システムに触る前に「エラー」にします。基幹システムのエラーダイアログをUI操作でさばくより、手前で弾くほうが何倍も安定します。
- 「エラー」にしてよいのは登録ボタンを押す前の失敗だけ。エラー処理で状態列を一律「エラー」に書き換えると、登録ボタンの操作が成功した後(完了メッセージの待機や書き戻しの途中)で失敗した行まで「エラー」になり、担当者がその行を再実行して基幹システムに二重登録される事故につながります。登録操作より後の失敗は状態列を「処理中」のまま残し、「処理中」で終わっている行は再実行の対象にせず、基幹システム側の登録有無を人が突き合わせてから「完了」か「未処理」に戻す運用にします。曖昧さを消すのではなく、曖昧なまま人の確認に回すのがこの設計の要点です。
- 画面のエラーダイアログを想定する。それでも入力時エラー(在庫不足、得意先の与信エラーなど)は起きます。想定できるダイアログは「ウィンドウが含まれるか」の条件分岐で拾って行のエラー内容に記録し、想定外のものはOn Block Errorに任せます。9
- 件数と時間の目安を持つ。UI自動化は1件あたり数十秒かかることも珍しくありません。100件で1時間なら夜間の無人実行で十分収まりますが、毎日数千件あるならUI自動化という手段自体を見直すサインです(次章)。
- 入力元の正規化は手前で済ませる。文字コードや日付形式の揺れ、全角半角の混在といったCSV・Excel由来の落とし穴は「CSVは「ただのテキスト」ではない ── C#業務アプリのCSV実務(文字コード・Excel互換・インジェクション対策)」で整理しています。
8. どこまでPADでやるか
UI自動化は、画面が変わればいつか壊れます。これは設計でどうにかなる話ではなく、この方式の宿命です。だからこそ、「PADで自動化してよい転記」と「開発・改修に進むべき転記」の線引きを持っておく必要があります。
| 状況 | 判断 |
|---|---|
| 1日数十〜数百件、失敗しても翌営業日の再実行で間に合う | PADで十分。まず有人実行から |
| 対象アプリの画面が何年も変わっていない(塩漬けのレガシーアプリ) | PAD向き。皮肉なことに「変わらない画面」はUI自動化と相性がよい |
| 対象アプリが頻繁にバージョンアップされる(SaaSのWeb画面など) | セレクター保守が続く前提で判断。更新のたびに壊れるならUI自動化は不向き |
| 毎日数千件以上、実行時間が業務時間を圧迫する | UI自動化の処理速度では頭打ち。CSV取込機能の追加開発やデータ連携の開発(受託)の領域 |
| 止まると当日の出荷・請求が止まる基幹業務 | 「壊れたら直るまで手入力に戻す」が許されないならUI自動化は不適。基幹システム改修・システム間連携の開発を検討 |
| 転記のついでに複雑な業務判断(在庫引当、価格決定)をさせたい | フローに業務ロジックを埋めるのは保守しきれない。業務ロジックはシステム側に置くべき領域 |
判断の感覚としては、「このフローが1週間壊れたままでも、手入力に戻せば業務が回るか」を目安にしています。回るならPADで自動化する価値が十分あります。回らないなら、その転記はもう「自動化」ではなく「システム連携」の要件であり、取込機能の追加、データベース連携、あるいは受発注そのものの電子化(EDIやFAX受注のWeb化)を検討する段階です。
もう1つ、PADのフローも「作った人しか触れない資産」になりがちです。フローの中身・接続・実行マシンを誰が引き継ぐのかは、同時公開の「Power Automateの属人化対策 ── 作った人が辞めてもフローが止まらないために」で整理しています。
9. まとめ
APIもCSV取込もない基幹システムへの転記は、PADのUI自動化で「システムに手を入れずに」自動化できます。Windows 11なら標準で使い始められ、作って手元で動かすだけなら追加費用もかかりません。担当者が毎日1時間の転記から解放され、転記ミスの調査・訂正がなくなるだけでも、導入の手間は十分に回収できます。
ただし、順番と設計を間違えないことが重要です。UI自動化の前にCSV取込・DB・API・ファイル連携の口を探すこと。無料の有人実行から始めて、無人化にはPremium+Processライセンスとサインアウト済みマシンという前提を押さえること。セレクターと要素待機と1件単位の例外処理で安定させ、状態列の書き戻しで「どこまで入力したか」を常に残すこと。そして、件数・重要度・画面の変更頻度がUI自動化の守備範囲を超えたら、無理に育てず、基幹システムの改修やデータ連携開発へ切り替えることです。
当社では、PADによる転記自動化の設計レビューから、その先の取込機能追加・システム間連携の受託開発、レガシーアプリの移行まで一続きで相談を受けています。「うちの基幹システムでもできるのか」という段階からでも、お気軽にどうぞ。
関連記事
- Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計
- VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方
- WindowsアプリのWeb化、しない方がいいケース ── 判断表と「分割」という現実解
- Power Automateのエラー処理とリトライ設計
- CSVは「ただのテキスト」ではない ── C#業務アプリのCSV実務(文字コード・Excel互換・インジェクション対策)
関連する相談領域
合同会社小村ソフトでは、Power Automate for desktopによる転記自動化の設計・安定化の相談から、UI自動化では収まらない基幹システムのデータ連携開発・レガシーアプリ改修まで扱っています。
参考リンク
-
Microsoft Learn, Get started with Power Automate in Windows 11. Windows 11にプレインストールされたPower Automateアプリ、400以上のアクションとレコーダーによりコーディング経験がなくてもフローを作成できることについて。 ↩
-
Microsoft Learn, Power Automate licensing FAQ. Windows 11ユーザーは既定環境で有人RPAのデスクトップフローを追加費用なしで利用でき(共有や他環境での作成は不可)、Windowsの検索バーからPower Automateを検索すると初回起動時に自動ダウンロードされること、Windows 10・Windows Server 2016でも利用権がありダウンロードセンターから入手できることについて。 ↩ ↩2 ↩3
-
Microsoft Learn, Get started with a work or school account. 職場・学校アカウントでのPower Automate for desktop利用は追加費用なしであること、既定環境にDataverseデータベースが必要なこと、自動実行やフロー共有などのRPA機能の解放にはプレミアムへのアップグレードが必要なことについて。 ↩ ↩2
-
Microsoft Learn, Prerequisites and limitations. サインインアカウント種別(Microsoftアカウント/職場・学校アカウント/組織プレミアムアカウント)ごとの機能比較。レコーダー・アクション・例外処理は全アカウントで利用でき、クラウドフローとの接続(起動・スケジュール)、共有、集中管理・レポートはプレミアムのみであること、保存先がOneDriveまたはDataverseであることについて。 ↩ ↩2 ↩3
-
Microsoft Learn, Run unattended desktop flows. 無人実行にPower Automate Processプランが必要なこと、Power AutomateがRDPセッションを作成して実行後にサインアウトすること、実行中は画面がロックされること、全ユーザーのサインアウトが必要でWindows 10/11ではロック中を含む残存セッションがあると失敗すること、接続ユーザーにRDPセッション作成権限(Remote Desktop Usersグループ)が必要なこと、管理者昇格を伴う実行が不可なこと、RDPセッションの既定解像度が作成時と異なり要素が見つからない失敗につながり得ることについて。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Microsoft Learn, Types of Power Automate licenses. 有人RPA権利(マシン登録・有人実行のトリガー等)がPremiumユーザーライセンスに含まれること、無人RPAにはマシンに割り当てるProcessライセンス(マシン1台あたり無人ボット1つ)が必要なこと、Processライセンスのマシンへの割り当てはPremiumユーザーによるマシン登録が前提であることについて。 ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, Build a custom selector. セレクターが
>で階層を表し各要素をelement[Attribute="Value"]の形で記述すること(例::desktop > window[Name="Notes.txt - Notepad"][Process="Notepad"])、利用できる演算子がEqual to / Not equal to / Contains / Starts with / Ends with / Regular expression match の6種で正規表現エンジンが.NETであること、視覚エディターでの変数使用がEqual to演算子に限られること、1つのUI要素に複数のセレクターを登録して失敗時に次のセレクターへフォールバックできること、階層(レベル)の有効・無効を切り替えて探索範囲を変えられることについて。Repair selectorによる修復候補の生成もあわせて。 ↩ ↩2 ↩3 ↩4 -
Microsoft Learn, UI automation actions. Wait for window contentアクションによる特定のテキスト・UI要素の出現/消滅までの待機、Get windowアクションのタイムアウト設定(指定時間内に見つからなければ失敗させるか待ち続けるかの選択)について。 ↩ ↩2 ↩3
-
Microsoft Learn, Handle errors in desktop flows. On Block Errorによるブロック単位の例外処理、アクション単位のリトライ設定(Retry action if an error occurs)について。 ↩ ↩2 ↩3
-
Microsoft Learn, Manage machines. マシンランタイムアプリ(MSIインストーラーに同梱。インストール時に「Install the machine-runtime app to connect to the Power Automate cloud portal」を選択)によるマシン登録、machine runtimeにサインインすると選択中の環境へ自動登録されマシン名・説明・環境が表示されること、登録にEnvironment MakerまたはDesktop Flow Machine Ownerロールが必要なこと、直接接続がバージョン2.8.73.21119以降を必要としWindows 10 Home・Windows 11 Homeでは利用できないこと、ポータルのMonitor > Machinesで登録済みマシンを確認できること、デスクトップフロー接続の作成時に「Directly to machine」を選んでマシン名と資格情報を入力すること、クラウドフローからのデスクトップフロー起動には有人RPA付きプレミアムユーザープランが必要なこと、無人実行にはマシンへのプロセス容量(無人ボット)の割り当てが必要なことについて。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Microsoft Learn, Record desktop flows. レコーダーがマウス・キーボード操作をUI要素との関係で記録してアクションに変換すること、記録方式としてUIA(WPF・WinForms等の新しいフレームワーク向け推奨)とMSAA(VB6やクラシックWin32などUIA非対応のレガシーアプリ向け)を選択できること、条件分岐やループは記録できず記録後の編集が前提であることについて。 ↩ ↩2
-
Microsoft Learn, Automate desktop applications. UI自動化アクションは対象ウィンドウが前面にあることを必要とし、前面にない場合は自動的に前面へ移動させることについて。 ↩
-
Microsoft Learn, Excel actions. Launch Excelによるインスタンス作成、Read from Excel worksheetでの単一セル・範囲の読み取り(データテーブル化、先頭行を列名として扱うオプション)、Write to Excel worksheetによる書き込み、Get first free row on columnによる空き行の取得について。 ↩ ↩2
-
Microsoft Learn, Trigger desktop flows from cloud flows. クラウドフローからデスクトップフローを起動する前提条件(登録済みマシンまたはマシングループ、職場・学校アカウント、デスクトップフロー接続、接続作成者が実行形態に応じたライセンスを持つこと)、入出力変数によるクラウド・デスクトップ間のデータ受け渡しについて。 ↩ ↩2 ↩3
-
Microsoft Learn, Process capacity. Processライセンス由来のプロセス容量をマシンに割り当てると無人ボットになり、無人ボット1つにつき同時に1本の無人デスクトップフローを実行できること、割り当てはマシン詳細ページの「Settings」にある「Unattended bots」のスライダーで行うこと、マシンあたりの最大ボット数がOSに依存すること、環境内で容量が共有されることについて。 ↩ ↩2
-
Microsoft, Power Automate の価格. 2026年7月時点の日本向け公開価格として、Power Automate Premiumが1ユーザーあたり月額2,248円相当(年払い)、Power Automate Processが1ボットあたり月額22,488円相当(年払い)、いずれも消費税を含まないことについて。 ↩
-
Microsoft Learn, Set screen resolution on unattended mode. 無人実行時の解像度が作成時より低くなり要素が隠れて失敗する場合に、フローのプロパティ(Display resolution for unattended runs)またはレジストリで解像度を固定できることについて。 ↩ ↩2
-
Microsoft Learn, Troubleshoot unattended desktop flow execution failures. 有人・無人セッション間の解像度やDPIスケーリングの差が失敗の原因になること、DPIを設計時・実行時とも100%に揃える等の対策について。 ↩ ↩2
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計
Power Automateのクラウドフローとデスクトップフローの違い、PowerShell/VBAとの使い分け、ライセンス、エラー処理、UI自動化の安定化、認証情報の安全な扱いまで、業務自動化を運用に乗せるための実践的な設計指針を整理します。
Power Automateのライセンス ── Microsoft 365でどこまで無料か、プレミアムが要るのはいつか
Power AutomateはMicrosoft 365の範囲で標準コネクタのクラウドフローを無料で作れますが、HTTP・SQL Server・DataverseなどプレミアムコネクタやRPA・AI Builderには有料ライセンスが必要です。Premium/Process...
Excel台帳をSharePointリストへ置き換える ── 共有・履歴・フロー連携で「台帳が壊れる」を卒業する
共有フォルダのExcel台帳をSharePointリスト(Microsoft Lists)へ移行する実践ガイド。同時編集・上書き・行ズレの解決、Excelからのインポート手順、列型設計、リストビューしきい値5000の正しい理解、Power Automate連携までを整理します。
ExcelマクロVBAをPower Automateへ移行する ── Officeスクリプトで置き換える範囲と、VBAのまま残す範囲
Excel VBAマクロをPower Automateへ移行できるかを整理します。Officeスクリプトで置き換えられる範囲とVBAにしかできないこと、コネクタの制限値、ライセンス要件、棚卸しから始める段階移行の進め方まで解説します。
Power AutomateとPowerShell+タスクスケジューラの使い分け ── 自動化の道具を混ぜずに適材適所でつなぐ
PowerShell+タスクスケジューラの夜間バッチとPower Automateフローが社内に混在し始めた中小企業の情シス向けに、両者の得意分野の違い、どちらで作るかの判断表、SharePoint経由で疎結合につなぐ連携パターン、ライセンスと保守の注意点まで整理します。
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
技術相談・設計レビュー
改修方針、設計レビュー、既存資産の扱いを整理するための技術相談です。
既存資産活用・移行支援
COM / ActiveX / OCX、32bit / 64bit 制約を抱える既存資産の活用と移行を支援します。
よくある質問
この記事のテーマについて、相談時によくある質問をまとめています。
- Power Automate for desktopは無料で使えますか?
- 使えます。Windows 11にはPower Automateアプリが標準で組み込まれており、Windows 10でもマイクロソフトのダウンロードセンターから無料でインストールできます。職場・学校アカウントでも追加費用なしで、レコーダーや400以上のアクション、例外処理などフロー作成と手動実行(有人実行)の機能一式が使えます。ただし、クラウドフローからの自動起動、フローの共有、実行ログの集中管理には有償のPower Automate Premiumライセンスが必要です。
- 夜間や早朝に人がいない状態で転記フローを動かすには何が必要ですか?
- 無人実行(unattended)には、クラウドフローから呼び出す構成が必要で、対象マシンの登録、デスクトップフロー接続の作成、そしてマシンに割り当てるPower Automate Processライセンスが前提になります。マシンの登録自体もPremiumライセンスを持つユーザーが行う必要があります。技術面では、無人実行はリモートデスクトップセッションを新規に作って動くため、対象マシンは全ユーザーがサインアウト済みでなければならず、ロック中のセッションが1つでも残っているとWindows 10/11では実行に失敗します。
- UI自動化は壊れやすいと聞きますが、実用になりますか?
- 対象の基幹システムの画面が安定していれば実用になります。壊れる原因の大半はUI要素の特定方法(セレクター)と待機不足なので、変化する属性をContainsや正規表現に変える、予備のセレクターを設定する、固定待機ではなく要素の出現を待つアクションを使う、といった設計で安定度は大きく変わります。ただし、画面レイアウトの変更で壊れる宿命自体はなくならないため、対象アプリの更新頻度が高い場合や、止まると業務が回らない件数・重要度の処理は、UI自動化ではなくデータ連携の開発や基幹システム側の改修を検討すべきです。
- 転記フローが途中で失敗したら、どこまで入力されたか分からなくなりませんか?
- 設計しだいで防げます。ポイントは、入力元のExcelに状態列(未処理・処理中・完了・エラー)と登録番号列を持たせ、1件入力するごとに基幹システム側の登録結果を確認してから状態を書き戻すことです。こうしておけば、失敗時にどの行まで登録済みかがExcel側に残り、再実行しても「未処理」の行だけを対象にするため二重入力が起きません。1件ごとの例外処理でエラー行を記録して次の行へ進む形にすれば、1件の入力ミスで全体が止まることも避けられます。