アーティサン株式会社
  • Excel
  • Power Automate
  • Power Platform
  • SharePoint

Power AutomateでフローをScope(スコープ)で整理して可読性を上げる方法(第11回)

Power Automate のフローが大きくなると、アクションが増えて全体像が見えにくくなりがちです。

本記事では、「スコープ」アクションを使って複数アクションをまとまりごとに整理し、可読性を上げる方法を解説します。

さらに、スコープを用いた 例外処理(try / catch / finally) の組み方と、「実行条件の構成」を使ってエラー時・成功時それぞれで処理を分岐する手順も紹介します。

この記事を書いた人
小刀稱知哉

小刀稱 知哉ことね ともや

SharePoint Power Platform全般 Copilot Studio 技術アドバイス・教育支援

Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!

2025 Microsoft MVP(Power Apps・Power Automate) 2026 Microsoft MVP(SharePoint・Power Automate)
PL-200 PL-300 PL-400 PL-600 MS-700 AZ-104 AZ-305 SC-200 SC-100

フローが読みにくい/エラー時の挙動が不安な状態のまま運用に入ると、保守コストが跳ね上がりがちです。

Power Automate と SharePoint 連携フローについて、スコープ設計・例外処理・通知設計まで含めて「どこをどう整理すると安定するか」を一緒に棚卸しできます。

「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第11回です。
今回で本シリーズは最後となります。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。
また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

第10回目の内容はこちらを参照ください。

Power AutomateでExcel→SharePointインポートがうまくいかない原因と対処法(第10回)

今回は、スコープアクションを紹介します。

「スコープ」アクションについて

突然ですが、前回までで作成したフローをご覧ください。

フロー

動的なExcelデータの取得や256行よりデータが多い場合の対処など、実際の運用に合わせて多くのアクションを追加したため、最初(第2回)に作成したフローと比較すると、フローの可読性が低下してしまいました。

ちなみに最初に作成したフローはこちら。

フロー2

このような際、スコープアクションを用いると、複数のアクションをまとめることが出来るため、可読性を向上させることができます。

また、「エラー発生時、その内容を保持したい」や「エラー発生の有無に関わらず、処理を実行したい」という要望もあると思います。 このような要望に対しては、スコープアクションを用いた例外処理(try catch finally)を実装することで対応できます。

以下では、それぞれの実装方法について説明します。

フローの可読性向上

可読性を向上させるために、まとまりのある一連のアクションを、スコープアクションにて囲みます。
今回のフローでは、「ファイルIDを取得するために必要なアクション」と「テーブルIDを取得するために必要なアクション」でそれぞれまとめることができそうです。

フロー3

上記2つをスコープアクションでまとめると、以下のようになります。(第1階層のみで表示)

フロー4

アクションのまとまり毎に「何を行っているのか」がわかりやすくなったため、フローの可読性が向上したと思います。

例外処理

スコープアクションを用いて、例外処理を実装してみましょう。

ロジックの修正

  • 例外が発生した場合は、対象行をErrorListへ格納

  • 例外発生の有無に関わらず、RowCount・SkipCountを更新

  • インポート結果をメールにて通知

ロジック

項目の作成アクションを用いてExcelデータをインポートする際、表データの中に異なる形式の値が存在すると、アクションの結果は失敗(例外発生)となります。

例外が発生した場合は、対象行をErrorListへ格納します。
また、例外発生の有無に関わらず、RowCount・SkipCountを更新させます。

例外処理の追加

以下の手順で例外処理を作成します。

  • スコープ(try catch finally)でまとめる

  • catchスコープfinallyスコープの「実行条件の構成」を変更する

(1)スコープ(try catch finally)でまとめる

スコープアクションでまとめる前に、インポートできなかった行を格納する配列変数(ErrorList)を追加します。

変数を初期化する(SkipCount)アクションの後続に、変数を初期化する(ErrorList)アクションを追加し、変数を初期化します。

変数の初期化

また、項目の作成アクションの後続に、配列変数に追加アクションも追加します。

配列変数に追加

変数の準備が整いましたので、try・catch・finallyのスコープアクションを作成し、以下のようにアクションを囲みます。

フロー-5

(2)catchスコープとfinallyスコープの「実行条件の構成」を変更する

catchスコープfinallyスコープの「実行条件の構成」を変更することで、例外処理機能を実装します。

「実行条件の構成」は第10回で説明しておりますので、参照してください。

設定内容は以下です。

catchスコープ :前のアクションが失敗したら実行

finallyスコープ:前のアクションが成功or失敗orスキップorタイムアウトしたら実行

この設定により、catchアクションは、tryアクションが失敗(例外発生)した場合、実行されます。
また、finallyアクションは、例外発生の有無に関わらず実行されます。

実行条件の構成

最後に、インポート作業終了時、メールにて通知するようアクションを追加しましょう。

Do Untilアクションの後続に条件アクションを追加し、ErrorListの要素数によりメールの送信内容を変更します。

要素数が0の場合  :すべての行が正常にインポートされたされた旨を通知

要素数が0でない場合:インポートに失敗した旨を通知 ※失敗した行も併せて通知

ErrorListの要素数を取得するには、length()関数を用います。
具体的な式は以下です。

length(variables(‘ErrorList’))

メール送信

ここまで作成したフローは以下のとおりです。

フロー-6

フロー実行

ではフローを実行してみてください。

表データの中に異なる形式の値がある場合は、その内容がメールにて通知されていると思います!

エラー通知メール

 

さて、全11回でお届けした本連載は今回で終了です。

Power Automateはコーディングの知識が不要であり、IT技術者以外の方も手軽に業務の自動化を実施することができます。

しかし、お手軽といえど多少の慣れは必要になりますので、今回の連載のようにトライアンドエラーを繰り返していきながら、操作方法や各アクションの使い方などを覚えていただくことが技術習得の一番の近道になると思います。

次回以降のテーマですが、「Power Automateの中級者向け」や「Power Appsの初心者向け」に関する内容を書こうと思います!

最後まで読んでいただき、ありがとうございました!

 

 

【このシリーズの過去回一覧】

 

連載の内容を試してみて、「自社のフローに当てはめると詰まるポイントが出た」場合は、設計の型(命名・スコープ分割・run after・ログ/通知)を一度整理すると再現性が上がります。

Power Automate / Power Apps の内製化支援・育成(現場の作り方に合わせた伴走)も対応しています。

 

こちらも合わせて読みたい