「RPA(ロボティック・プロセス・オートメーション)に興味はあるけど、どこから始めればいいか分からない…」
そんなあなたのために、今日は Power Automate Desktop(以下、PAD) を使って実際に私が経験・目撃した5つの業務自動化例をご紹介します。
- 自分が手作業で毎回やってる作業…自動化できる?
- 上司やチームに「RPA導入しよう!」ってどう説得する?
- 実際にどんな作業がPADで自動化できるの?
そう思った方、ぜひこのブログを読んでヒントを得てください!
ケース1:毎日指定時刻にWebページを開いてスクリーンショットを自動保存する
このフローは、毎日定刻に特定のWebページを開いて、その画面をスクリーンショットとして保存するという内容です。
たとえば、「エラー数を毎朝記録したい」「社内ダッシュボードの状態を毎日アーカイブしたい」といった用途で使えます。
🔧 準備しておくこと
| 項目 | 内容 |
|---|---|
| 必要なツール | Power Automate Desktop(無料) |
| URL | 自動で開きたいWebページのURL(例:https://example.com/report) |
| 保存先 | スクリーンショットを保存するフォルダパス(例:C:\Reports\Screenshots) |
✅ フロー全体の流れ
以下の順にアクションを組み立てます。
① 起動トリガーを設定(毎朝7:00に実行)
- [実行スケジュールを作成] を使って、PADを指定時間に自動起動
- 起動方法例:タスクスケジューラー or Power Automateクラウド経由で「PADフロー実行」トリガー
② Webページを開く
- アクション:
Webページを起動- 入力するURL:
https://example.com/report - 使用ブラウザ:Edge または Chrome
- 入力するURL:
③ ページの読み込み完了まで待機
- アクション:
待機- タイプ:静的(例:10秒)
- または
UI要素の表示を待機で、特定の要素が読み込まれるまで待つことも可能
④ スクリーンショットを撮影
- アクション:
スクリーンショットを取得- キャプチャ領域:
ウィンドウ全体or指定範囲 - 保存形式:PNGまたはJPEG
- キャプチャ領域:
⑤ スクリーンショットをファイルに保存
- アクション:
ファイルとして保存- 保存先:
C:\Reports\Screenshots - ファイル名:
"Report_" + formatDateTime(now(), "yyyyMMdd") + ".png"
- 保存先:
⑥ Webブラウザを閉じる(オプション)
- アクション:
ウィンドウを閉じる- 条件:スクリーンショット取得後
💡 補足ポイント
formatDateTime()を使うことで、日付を含んだファイル名を自動で生成できます。Webページを起動アクションでログインが必要な場合は、テキストの入力やボタンのクリックアクションを追加して自動ログイン処理を挟みましょう。- スクリーンショットではなく、HTMLソースの取得や表データの取得も可能です。
💬 フロー図のイメージ(構造)
1. 実行スケジュール(毎朝7時)
└▶ 2. Webページを起動
└▶ 3. ページの読み込み待機
└▶ 4. スクリーンショットを取得
└▶ 5. ファイルとして保存
└▶ 6. ブラウザを閉じる(オプション)
🧪 実行後の結果イメージ
C:\Reports\Screenshotsに、以下のようなファイルが自動保存されていきます:
Report_20250422.png
Report_20250423.png
Report_20250424.png
...
このように、日々の記録が人の手を介さず蓄積されていくようになります。
❓ よくある質問(FAQ)
Q1. フォルダが存在しない場合は?
→ フォルダーを作成 アクションで事前にチェック&作成できます。
Q2. ページによってはログインが必要です。どうすれば?
→ UI要素の記録 機能でログイン操作を記録し、フローの中に追加しましょう。
Q3. スクリーンショットの品質を上げたいです
→ PNG形式を選び、画面解像度を高く保つことで綺麗な画像になります。
ケース2:SQLクエリを定期実行して結果を取得、自動保存する
このユースケースは、
「毎朝、SQL Serverに接続してクエリを実行し、その結果をCSVやExcelで保存したい」
というニーズにピッタリです。
例:毎朝、前日の受注データを取得してレポートを自動作成する、など。
🔧 準備しておくこと
| 項目 | 内容 |
|---|---|
| 使用するツール | Power Automate Desktop(無料) |
| SQL Server 接続情報 | サーバー名、データベース名、認証情報(ユーザー名/パスワード) |
| クエリ | 実行したいSQL文(例:SELECT * FROM Orders WHERE OrderDate = GETDATE()-1) |
| 保存先 | 出力ファイルの保存フォルダ(例:C:\Reports\SQLResults) |
✅ フローの全体構成
1. 実行スケジュールの設定(毎朝7:00など)
└▶ 2. SQL接続の確立
└▶ 3. クエリの実行
└▶ 4. 結果の保存(CSVやExcel)
└▶ 5. 接続の切断
🛠 フローの作り方ステップ(PAD上での操作)
① スケジュール起動の準備(Windowsのタスクスケジューラーなど)
PAD単体ではスケジュール機能がないので、
Windowsタスクスケジューラー でこのPADフローを起動するように設定します。
設定は「フロー名 → 右クリック → ショートカット作成 → スケジュール登録」でOK。
② SQLサーバーへの接続
- アクション名:
データベースに接続 - 入力内容: パラメータ入力例接続文字列
Server=localhost;Database=MyDB;User Id=myuser;Password=mypassword;プロバイダ名(推奨)System.Data.SqlClient - 保存先の変数名:
SQLConnection
③ SQLクエリの実行
- アクション名:
SQL ステートメントを実行してデータ テーブルを取得 - パラメータ: 項目値SQL接続
SQLConnectionSQL文例:SELECT * FROM Orders WHERE OrderDate = CONVERT(date, GETDATE()-1)結果保存先変数QueryResults
④ 結果をCSVとして保存
- アクション名:
データテーブルをCSVファイルに書き込む - 入力内容: パラメータ値データテーブル
QueryResultsファイルパスC:\Reports\SQLResults\Orders_%CurrentDate%.csv日付挿入の例%CurrentDate%という変数はformatDateTime(now(), "yyyyMMdd")で作成可能
⑤ 接続を切断
- アクション名:
データベース接続を閉じる - 接続変数:
SQLConnection
💡 フローのポイント
- SQL文は動的に生成も可能です。たとえば、日付だけを毎回変えたい場合は、
formatDateTime(now(), "yyyy-MM-dd")で動的な日付を埋め込めます。 - 保存形式はCSV以外にも、
Excelで保存したい場合は、Excelの起動→シートに書き込み→保存という別アプローチが必要です。 - 複数のクエリを連続実行したい場合は、「データベース接続→SQL実行→保存」のブロックを複数設置するだけでOK!
📸 フロー図イメージ
[スケジュール起動]
└▶ [SQL接続を確立]
└▶ [クエリ実行 → データを取得]
└▶ [CSVとして保存]
└▶ [接続を切断]
🧪 実行後の出力ファイル例
C:\Reports\SQLResults\
└── Orders_20250422.csv
└── Orders_20250423.csv
└── Orders_20250424.csv
...
❓ よくある質問(FAQ)
Q1. SQL Server以外のデータベース(MySQL、PostgreSQL)でも使えますか?
→ はい、接続文字列とプロバイダ名を変えることで対応可能です。
Q2. 認証がWindows認証(SSPI)なのですが?
→ Trusted_Connection=True を接続文字列に含めれば対応可能です。
Q3. クエリ実行結果が空でもファイル出力されますか?
→ はい、空ファイルが出力されます。If アクションで件数チェックし、分岐も可能です。
Q4. 結果をメールで送ることはできますか?
→ 可能です。電子メールの送信アクションで、CSVを添付して送信できます。
ケース3:Excelレポートを指定日ごとに自動生成
💡 ユースケース概要
たとえば、
「月初と月中(毎月1日と15日)に売上レポートを作成する必要がある」
でも…毎回PCに張り付いて数字を手計算して保存して、メール送って……面倒すぎる!
✅ そんな作業を**Power Automate Desktop(PAD)**で自動化すれば、指定日になったら自動で:
- Excelを開く
- データを加工・集計
- レポートを保存
- メール送信 or SharePoint保存
全部自動でやってくれます!
🔧 前提準備
| 項目 | 内容 |
|---|---|
| Excelファイル | 入力用(データベース)と出力用(テンプレート)を準備しておく |
| 保存先 | 出力先のフォルダ(例:C:\Reports\MonthlySales\) |
| スケジュール実行 | Windowsタスクスケジューラーでフローを指定日実行に設定 |
✅ フロー全体構成
1. PADを起動(指定日実行)
└▶ 2. Excelファイルを開く(元データ)
└▶ 3. 必要なセル/行を読み取り
└▶ 4. 計算 or 加工(四則演算・合計など)
└▶ 5. 結果を別Excelテンプレに書き込み
└▶ 6. ファイル名を日付付きで保存
└▶ 7. メール送信 or クラウドにアップ
🛠 フロー構築の手順(PAD操作)
① Excelファイルの起動
- アクション名:
Excelの起動 - パラメータ: 項目値Excelファイルを指定例:
C:\Data\SalesBase.xlsx既存のExcelインスタンスを使用チェックOFF(新しく開く) - 保存先変数:
ExcelInstance1
② データを読み取り
- アクション名:
Excelワークシートからデータを読み取る - パラメータ: 項目値セル範囲例:
A1:D100(売上データ範囲)読み取り形式データテーブルとして読み込む保存変数名SalesData(任意)
③ 加工・集計(例:売上合計を出す)
- アクション名:
データテーブル内の列の合計を計算 - 対象列:売上金額列(たとえば「D列」)
- 保存変数名:
TotalSales
④ 結果をテンプレートに出力
- アクション名:
Excelの起動(テンプレート用) - テンプレファイル例:
C:\Template\MonthlyReport.xlsx - 保存変数名:
ExcelInstance2 - アクション名:
Excelワークシートに書き込む - 対象セル:例)
B2にTotalSalesを書き込み
⑤ 日付付きファイル名で保存
- アクション名:
Excelワークブックを保存 - ファイルパス:例)
C:\Reports\MonthlySales\Report_%CurrentDate%.xlsx %CurrentDate%変数の中身は、formatDateTime(now(), "yyyyMMdd")
⑥ メール送信 or クラウドアップロード(任意)
メール送信
- アクション名:
電子メールの送信(Outlook) - 添付ファイルに先ほど保存したExcelファイルを指定
クラウドアップロード(SharePointやOneDrive)
- PAD単体では難しいので、Power Automate(クラウド)と連携が必要です(希望あれば別途解説可)
📸 フローイメージ(図解)
[PAD起動]
└▶ [Excelデータ読み取り]
└▶ [売上集計]
└▶ [テンプレに書き込み]
└▶ [日付付きで保存]
└▶ [メール送信 or クラウド保存]
🧪 出力ファイル例
C:\Reports\MonthlySales\
├── Report_20250401.xlsx
├── Report_20250415.xlsx
├── Report_20250501.xlsx
❓ よくある質問(FAQ)
Q1. フローは自動で実行できますか?
→ PAD単体ではできませんが、Windowsタスクスケジューラーで日時指定実行できます!
Q2. 曜日指定(毎週金曜など)も可能?
→ タスクスケジューラーで「毎週金曜日」でOK。PADフローはそのまま使えます。
Q3. Excelが開いていないと実行できない?
→ PADが自動でExcelをバックグラウンド起動するので、開いてなくても大丈夫です!
Q4. テンプレートExcelの項目が変わったら?
→ フロー側の「書き込みセル位置」を調整するだけです。柔軟に対応可能です!
ケース4:PDFから指定領域を自動スクリーンショット → フォルダ保存
💡 ユースケース概要
「100種類のPDFファイルから、特定のページ・特定の場所の画像を切り出して、1枚ずつ画像として保存したい…」
👨💻 たとえばこんな場面:
- 数学問題が掲載されたPDFが大量にある
- 各PDFに1問ずつ問題があり、それを切り取って画像にして保管したい
- でも100枚もあって、手作業じゃムリ!
☑️ そんな時、PADを使えば、夜に仕込んで朝には完了!
1ファイルずつ開いて、画面をスクリーンショットし、フォルダに画像として保存してくれます。
✅ フロー構成全体(PDFスクショ自動化)
1. フォルダ内のPDF一覧を取得
2. 1つずつPDFを開く(既定のPDFビューアで)
3. 少し待つ(画面描写の安定待ち)
4. 指定位置のスクリーンショットを取得
5. 保存先フォルダに画像として保存(ファイル名に連番 or PDF名)
6. 次のPDFへループ
🔧 フローを作る手順(Power Automate Desktop)
① フォルダ内のPDFファイル一覧を取得
- アクション名:
フォルダー内のファイルを取得 - 対象フォルダ:
C:\PDF問題集 - フィルター:
*.pdf - 出力変数:
PDFList
② For Each ループでPDFを1件ずつ処理
- アクション名:
For Each - 対象:
PDFList - 変数名:
CurrentPDF
③ PDFファイルを開く
- アクション名:
ファイルを開く - パス:
%CurrentPDF% - アプリケーション:既定のPDFビューア(Adobe Acrobat Readerなど)
④ 少し待つ(画面安定用)
- アクション名:
待機 - 時間:2秒(場合により調整)
⑤ スクリーンショット取得(指定領域)
- アクション名:
画面の一部をキャプチャ - キャプチャ方法:
座標指定 - 座標位置(例): 座標値(例)左上X=100, Y=200幅高さ幅=800, 高さ=600
- 出力変数:
CapturedImage
※スクショしたい位置は、事前に Snipping Toolなどで確認しておくと正確です。
⑥ 画像として保存
- アクション名:
画像を保存 - 保存パス:
C:\ExtractedImages\問題_%LoopIndex%.png - 画像:
CapturedImage
%LoopIndex% は For Each の「ループカウンタ」を併用することで連番にできます。
⑦ アプリケーションを閉じる(任意)
- アクション名:
アプリケーションを閉じる - 対象:Acrobat ReaderなどのPDFビューア
🧪 出力結果例
C:\ExtractedImages\
├── 問題_1.png
├── 問題_2.png
├── 問題_3.png
...
├── 問題_100.png
❓ よくある質問(FAQ)
Q1. スクリーンショットの座標はどう決めるの?
→ Snipping Tool や Windows の「スクリーンキャプチャ」機能で目視確認して、適切な X, Y 座標と幅・高さを調整してください。
Q2. PDFごとに位置がずれる場合は?
→ 毎回微妙に位置がズレるなら、PDFを事前に統一した形式に加工するか、OCR機能で対象テキストを探す方式に切り替えるとよいです。
Q3. PDFを閉じなくても問題ない?
→ 開いたままだと次のPDFが後ろに隠れる可能性があるため、「アプリを閉じる」アクションを入れておくのが安全です。
Q4. スクリーンショットではなく、PDFの中身のテキストを取り出したいときは?
→ ユースケース5で紹介する「OCR(光学文字認識)」を使えば、テキスト抽出もできます!
📌 補足:もう少し高度にしたい方へ
- 特定のキーワードが含まれているページだけに処理したい場合:
- PDF → OCR → キーワード検索 → スクショ、という流れでできます
- 1つのPDFに複数ページある場合:
- PDFをページ単位で開いて、各ページで処理するループ処理が必要になります
この辺もPower Automate Desktopなら応用可能です!
ケース5:OCRでPDFのテキストを抽出 → ExcelやSharePointに記録
💡 ユースケース概要
📄 こんな悩みありませんか?
- お客様から届く 請求書PDF を毎月1枚1枚手作業で開いて、
支払期日や請求金額、会社名などを Excel に記録している… - しかも PDF は「画像形式」で、コピーすらできない…
☑️ Power Automate Desktop + OCR(光学文字認識)機能 を使えば、
画像PDFの中から文字を読み取り、自動で必要情報を取得 → データベースやExcelに記録できます!
✅ フロー構成全体(PDFからOCRでデータ抽出 → Excelへ)
1. フォルダ内のPDFファイル一覧を取得
2. PDFを1つずつ開く(非表示可)
3. OCRエンジンでPDF内のテキストを読み取る
4. テキストを抽出・整形・変数に格納
5. Excelファイルに追記(または新規行追加)
6. 次のPDFへループ
🔧 フローを作る手順(Power Automate Desktop)
① フォルダ内のPDF一覧を取得
- アクション名:
フォルダー内のファイルを取得 - 対象フォルダ:
C:\Invoices - フィルター:
*.pdf - 出力変数:
PDFList
② For Each ループでPDFを1件ずつ処理
- アクション名:
For Each - 対象:
PDFList - 変数名:
CurrentPDF
③ PDFのOCRを実行してテキスト抽出
- アクション名:
OCRを使用してPDFからテキストを抽出 - 入力ファイル:
%CurrentPDF% - 出力変数:
ExtractedText
🔍 この1アクションだけで、画像PDFからテキストを文字として抽出できます!
※フォントが明確なPDFであれば、ほぼ100%の精度で読み取り可能です。
④ 必要な情報を正規表現などで切り出す
- アクション名:
テキストからパターンに一致する部分を抽出 - 入力:
%ExtractedText% - 抽出するもの(例):
- 請求書番号:
Invoice No: (\d+) - 顧客名:
Customer: (.+) - 金額:
Amount: (\d+,?\d*) - 支払期日:
Due Date: (\d{4}/\d{2}/\d{2})
- 請求書番号:
抽出した値はそれぞれ変数(InvoiceNo, CustomerName, など)に保存します。
⑤ Excelに1行ずつ追記
- アクション名:
Excelワークシートに行を追加 - ファイル:
請求書管理.xlsx - ワークシート:
Invoices - データ:
日付, 顧客名, 請求番号, 金額, 支払期限 %CurrentDate%, %CustomerName%, %InvoiceNo%, %Amount%, %DueDate%
⑥ ループの終了と次ファイルへ
- 次のPDFに自動で移行
- 繰り返し完了後、ファイルは閉じて完了
📁 出力結果例(Excel)
| 日付 | 顧客名 | 請求番号 | 金額 | 支払期限 |
|---|---|---|---|---|
| 2025/04/22 | 株式会社A | 101234 | 250,000 | 2025/05/10 |
| 2025/04/22 | B商事 | 101235 | 85,000 | 2025/05/12 |
❓ よくある質問(FAQ)
Q1. OCRって、画像でも読み取れるの?
→ はい!画像PDFはもちろん、画像ファイル(.jpg や .png)にも対応しています。
Q2. 複数ページあるPDFはどうなる?
→ すべてのページを処理 にチェックを入れれば、全ページのテキストを1つの変数にまとめて抽出できます。
Q3. 抽出したテキストがぐちゃぐちゃになることは?
→ テンプレートが統一されていれば、正規表現(RegEx)で高精度に切り出せます。不定形な場合はAI OCRの導入も視野に。
Q4. 保存先はExcelだけ?
→ いいえ、SharePointリスト、Dataverse、SQLなどさまざまな先に送ることが可能です。
📌 補足:応用パターン
- フォルダに新しいPDFが追加されたら自動実行(監視トリガーを追加)
- 支払期限をチェックして、期限超過の案件には自動でメール通知
- 顧客名でフォルダ分け or データベースの整備に活用
