Excelで同じ転記作業を何度も繰り返していませんか?
たとえば「一覧データを1行ずつ別シートに転記」「複数ファイルの内容を順番に集約」といった作業は、手動では時間がかかりミスも起きやすい業務の代表例です。
そんな繰り返し処理を自動化できるのが、Power Automateのループ(繰り返し)機能です。
この記事では、「Power AutomateでExcel転記をループ処理で実現する方法」を中心に、
クラウド版とPower Automate Desktop(PAD)両方の実装例を交えながら詳しく解説します。
目次
- ✅ Power Automateでループを使ったExcel転記を行うメリット
- ・大量データの転記を一括処理できる
- ・条件に応じた柔軟な分岐が可能
- ・定期処理に組み込みやすい
- ✅ Power Automateにおけるループ処理の基本構造
- ✅ Power Automate(クラウド版)でループ転記を行う方法
- ・ステップ1:転記元Excelの準備
- ・ステップ2:転記先Excelの準備
- ・ステップ3:フローの作成とトリガー設定
- ・ステップ4:「テーブル内の行を一覧表示」でデータを取得
- ・ステップ5:「Apply to each」でループ処理を構築
- ・ステップ6:条件を加える(任意)
- ✅ Power Automate Desktop(PAD)でExcel転記をループ処理する方法
- ・ステップ1:Excel起動と元データ取得
- ・ステップ2:For Eachループで行ごとに処理
- ・ステップ3:転記先Excelの指定と書き込み
- ・ステップ4:保存と終了
- ✅ 実務でのループ転記の応用例
- ・例1:複数シートへの自動転記
- ・例2:複数ファイルへの転記
- ・例3:日次更新データの自動集約
- ✅ ループ転記がうまく動作しない時の原因と対策
- ・原因1:Excelが閉じていない(PAD)
- ・原因2:データ形式の不一致
- ・原因3:ループ対象の範囲が誤っている
- ・原因4:ファイルのロック・競合
- ✅ 効率化・安定化のためのベストプラクティス
- ✅ まとめ:ループ転記を使いこなしてPower Automateの真価を引き出そう
✅ Power Automateでループを使ったExcel転記を行うメリット
Power AutomateでExcel転記をループ処理として自動化すると、次のような効果があります。
・大量データの転記を一括処理できる
100件でも1000件でも、ループを使えばすべてのデータを自動で順番に処理可能。
従来1件ずつコピーペーストしていた作業を、わずか数分で完了できます。
・条件に応じた柔軟な分岐が可能
ループ内で条件式(If)を組み合わせることで、「指定条件を満たす行だけ転記」など、
業務に応じた細かい判定処理も実現できます。
・定期処理に組み込みやすい
スケジュール実行と組み合わせれば、毎日・毎週など定期的なExcel更新を完全自動化できます。
「夜間にループで転記→朝には最新データが完成」という仕組みも簡単に構築可能です。
✅ Power Automateにおけるループ処理の基本構造
Power Automateでは、ループ処理を行うために主に次のアクションを使います。
- Apply to each(各要素に適用):データの配列や行を1件ずつ順番に処理する。
- Do Until(条件を満たすまで繰り返す):特定の条件が成立するまでループを継続する。
Excel転記の場面では、**「Apply to each」**を使うケースが圧倒的に多くなります。
構成イメージは以下のとおりです。
- Excelファイルから全行データを取得する
- ループで1行ずつ読み取り
- 条件判定を行う(必要に応じて)
- 転記先Excelに書き込む
この流れを理解しておけば、あらゆる自動転記処理に応用できます。
✅ Power Automate(クラウド版)でループ転記を行う方法
クラウド版のPower Automateでは、Excel Online(Business)コネクタを利用してExcelファイルを操作します。
特にOneDriveやSharePoint上のExcelファイルを対象とする場合に最適です。
・ステップ1:転記元Excelの準備
- OneDrive上に「元データ.xlsx」を配置。
- 転記したい範囲を選択し、「テーブルとして書式設定」を実行。
- テーブル名を「SourceTable」に設定します。
テーブル化しておくことで、Power Automateが各行を認識しやすくなります。
・ステップ2:転記先Excelの準備
転記先となるExcelファイルも同様に、テーブルとして設定しておきます。
例:テーブル名を「TargetTable」にしておくとわかりやすいです。
・ステップ3:フローの作成とトリガー設定
- Power Automateポータルから「自動クラウドフロー」を新規作成。
- トリガーは「スケジュール」「手動実行」「ファイル更新時」など、業務に合わせて設定します。
・ステップ4:「テーブル内の行を一覧表示」でデータを取得
- 「Excel Online(Business)」の「テーブル内の行を一覧表示」を追加。
- 元データファイルとテーブル名(SourceTable)を指定します。
- このアクションが、ループの基礎となる配列データを生成します。
・ステップ5:「Apply to each」でループ処理を構築
- 「Apply to each」アクションを追加し、出力の「value」を対象に設定します。
- ループ内に「Excel Online(Business)」の「行を追加」アクションを配置します。
- 「行を追加」で、転記先ファイル・テーブルを指定し、対応する列に値をマッピングします。
例:
- 元データの「顧客名」→転記先の「顧客名」
- 元データの「金額」→転記先の「売上」
これで1行ずつループで転記されていきます。
・ステップ6:条件を加える(任意)
ループ内で条件式を追加すれば、
「金額が10万円以上のデータのみ転記」などの抽出も可能です。
例:
@greater(items('Apply_to_each')?['金額'],100000)
この式を「条件」アクションに設定し、
「はい」側の分岐に転記処理を配置すれば完了です。
参考:【Power Automate】Excel転記を条件付きで自動化する方法|効率化と正確性を両立
✅ Power Automate Desktop(PAD)でExcel転記をループ処理する方法
ローカル環境でのExcel操作は、Power Automate Desktopの出番です。
Excelを直接開き、セル操作や書式設定まで自動化できます。
・ステップ1:Excel起動と元データ取得
- PADで新しいフローを作成。
- 「Excelの起動」アクションを追加してExcelを開く。
- 「Excelワークブックを開く」で元データのファイルを指定。
- 「範囲から読み取り」アクションでデータを変数(例:dtSource)に格納します。
このdtSourceが、ループの基礎となるデータテーブルです。
・ステップ2:For Eachループで行ごとに処理
- 「For Each」アクションを追加し、対象を「%dtSource%」に設定。
- 各行のデータを変数(例:CurrentItem)として扱います。
- ループ内で必要な列を参照します(例:
%CurrentItem[1]%など)。
・ステップ3:転記先Excelの指定と書き込み
- ループ内で「Excelワークブックを開く」アクションを追加(または既存インスタンスを利用)。
- 「セルに書き込み」または「範囲に書き込み」で、転記内容を指定。
- 動的に書き込むセルを制御する場合は、カウンタ変数を用意し、
「A%Counter%」のようにして行位置を自動増加させます。
・ステップ4:保存と終了
ループ完了後、「Excelを保存」「Excelを閉じる」「Excelの終了」で後処理を行います。
これにより、Excelプロセスが残らず安定した実行が可能です。
✅ 実務でのループ転記の応用例
Power Automateのループ転記は、さまざまな現場で活用できます。
いくつか代表的なシナリオを紹介します。
・例1:複数シートへの自動転記
1つのExcelに複数のシートがあり、各部門のデータをそれぞれに転記するケース。
ループ内で条件式を使い、「部門名=営業部 → 営業シート」「部門名=経理 → 経理シート」と自動分岐できます。
・例2:複数ファイルへの転記
フォルダ内の複数Excelファイルに順番に書き込む。
「フォルダー内のファイル一覧を取得」アクションとループを組み合わせることで、一括処理が可能です。
・例3:日次更新データの自動集約
各担当者が作成した日次ファイルを1つのマスターファイルに自動転記。
ループと条件判定を組み合わせれば、「未入力除外」や「重複防止」も簡単に行えます。
✅ ループ転記がうまく動作しない時の原因と対策
・原因1:Excelが閉じていない(PAD)
ループ内でExcelを開くたびに閉じないと、複数プロセスが残ります。
解決策:ループ終了時または各サイクルの最後に必ず「Excelを閉じる」を追加しましょう。
・原因2:データ形式の不一致
Power Automateは数値と文字列を厳密に区別します。
Excel側のデータ形式が混在していると、比較式がエラーになります。
解決策:Excel内で「テキスト形式」に統一するか、「string()」関数で型変換します。
・原因3:ループ対象の範囲が誤っている
クラウド版の場合、テーブル化されていない範囲は認識されません。
必ず「テーブルとして書式設定」を行っておきましょう。
・原因4:ファイルのロック・競合
他ユーザーが同時にExcelを開いていると、Power Automateが書き込みできません。
実行前にファイルロック確認アクションを追加するのが安全です。
✅ 効率化・安定化のためのベストプラクティス
- ループ対象を最小限にする:全行処理ではなく、条件抽出(Filter array)後の配列にループをかける。
- 待機アクションを挟む:Excel書き込み後に1秒の待機を入れると安定性が向上。
- 変数名を明確にする:「CurrentRow」「TargetFile」など、可読性を重視するとメンテナンス性が上がる。
- エラーハンドリングを入れる:「エラー時は次のループへ進む」を設定し、処理停止を防ぐ。
- ログ記録を追加する:ループ回数や転記件数を別ファイルに出力しておくと、トラブル時に追跡が容易。
✅ まとめ:ループ転記を使いこなしてPower Automateの真価を引き出そう
- Power Automateでは、「Apply to each」や「For Each」アクションでExcel転記をループ処理できる。
- クラウド版はテーブル化+「行を追加」、Desktop版は「範囲読み取り+書き込み」が基本構成。
- 条件分岐を組み合わせれば、データ抽出・仕分け・複数ファイル転記も自在に実装可能。
- 安定化には、待機・終了処理・データ型統一・エラー対応の4点が重要。
Power Automateのループを使いこなせば、繰り返し作業のすべてを自動化できます。
単調なExcel転記を「1クリックで完結する仕組み」に変え、あなたの業務時間をもっと価値のある仕事に使いましょう。