Power Automate Desktopでエラー発生時にフローを最初からやり直す方法

  • URLをコピーしました!
目次

はじめに

Power Automate Desktop(PAD)でブラウザ操作を自動化していると、タイムアウトクリックできない要素などの原因で、処理が止まってしまうことがありますよね。そんなときに便利なのが、「エラーが起きたら最初からやり直す」仕組みです。

この記事では、初心者の方でも分かりやすいようにステップバイステップで、以下のようなフローの作り方を解説します:

  • エラー時にスクリーンショットを自動保存
  • 開いている画面をすべて閉じる
  • 自動的にフローの最初から再実行

フロー全体の考え方

処理を3つに分けて考えます:

  1. 通常フロー(=メイン処理)
  2. エラー発生時のフロー(=サブフロー)
  3. 実行用フロー(=トップレベルでフローを動かす)

フローの構成図

Main(実行用フロー)
 └ 呼び出し → メイン処理(サブフロー)
       └ エラー発生時 → エラー処理(サブフロー)

ステップ①:メイン処理をサブフローにする

✅ なぜ必要?

PADで「最初からやり直す」ためには、メインの処理を一つのサブフローにしておき、それを再呼び出しできるようにします。

🔧 やり方

  1. 左側の【サブフロー】をクリック
  2. 新規作成 → サブフロー名を「メイン処理」に
  3. そこに通常の処理を記述していきます

メイン処理に含める内容の例:

  • ブラウザ起動(ChromeやEdge)
  • ログイン画面へのアクセス
  • ユーザー名・パスワード入力
  • 必要なクリック・入力処理
  • 最後にブラウザを閉じる(正常終了)

ステップ②:エラー処理のサブフローを作る

✅ 目的

エラー発生時に、証拠(スクリーンショット)を残し画面を閉じて再実行する仕組みを作ります。

🔧 作成手順(順番が重要!)

  1. サブフロー新規作成 → 名前は「エラー処理」
  2. 以下の順にアクションを追加:

① スクリーンショットを撮る

  • アクション名:スクリーンショットを撮る
  • 保存先:例)C:\Logs\error_%CurrentDateTime%.png

%CurrentDateTime%2025-08-28_12-34-56 のように日時が入るように変数を作っておくと便利です。

② ウィンドウをすべて閉じる

  • アクション名:ウィンドウを閉じる
  • 設定:「すべてのウィンドウを閉じる」にチェック

または Chrome/Edge 専用で、ウィンドウを閉じる をループで全て実行してもOK。

③ 数秒待機

  • アクション名:待機
  • 秒数:2秒〜3秒

④ メイン処理を呼び直す

  • アクション名:サブフローの実行
  • 呼び出す:メイン処理

ステップ③:実行用のMainフローを作成

このフローが「親フロー」となり、全体の実行管理をします。

🔧 実行用フローの中身

  1. サブフローの実行 → 「メイン処理」を呼び出す
  2. プロパティ設定:
     エラー発生時に → エラー処理サブフローを実行

✅ 重要ポイント

各アクションまたはサブフロー実行時に、エラー時の動作として「サブフロー:エラー処理」を設定する必要があります!


よくある質問(FAQ)

Q1. エラーが起きすぎて無限ループになりませんか?

はい、なる可能性があります。
それを防ぐには、「再実行回数をカウントする変数」を作り、一定回数以上は処理を止めるように条件分岐を加えましょう。

例:

変数:RetryCount
初期値:0

→ 再実行ごとに +1 して、3回以上になったら終了処理

Q2. 途中まで処理したデータが残っていておかしくなるのですが?

→ エラー後にすべての画面・ウィンドウを閉じることで多くの場合は解決します。
それでも残るようなら、「ブラウザキャッシュのクリア」や「一時ファイル削除」も検討を。


Q3. スクリーンショットがうまく保存されません…

→ 保存先パスが正しく設定されているか、フォルダが存在するか確認してください。
また、ファイル名に日本語や特殊文字が入っていないかも注意が必要です。


Q4. 「最初からやり直す」ではなく、「中断して通知を送りたい」のですが?

→ その場合はエラー処理サブフロー内に「メール送信」や「Teams通知」などのアクションを追加しましょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次