Power Automate Desktop(以下、PAD)でExcelデータを自動処理していると、
「データの行数が毎回違う…」
「最終行を自動で認識して読み取りたい」
という悩みを持つ方は多いです。
この記事では、Microsoft公式チャンネルでも紹介されている
「行数が変わるExcelデータを自動で読み取る」フロー構築方法 を、手順付きでわかりやすく解説します。
🎯この記事でできること
- Excelの最終行を自動で取得できる
- 行数が変わっても正しくデータを読み込める
- 保存せずにExcelを閉じる安全なフローが作れる
🧱 完成イメージ
実行ボタンを押すと、
- 練習用Excelファイルが自動で開き、
- 指定列(例:B列)を基準に最終行を検出し、
- 必要な範囲のデータのみを変数に格納します。
つまり、毎回データの長さが違っても、正確に最終行まで取得できるようになります。
🧩 手順① 新しいフローを作成
- Power Automate Desktopを起動
- 左上の「新しいフロー」をクリック
- フロー名に「Excel_自動読み取り」など、わかりやすい名前を入力
これで新規フローの準備ができました。
⚙️ 手順② Excelを起動する
- 左パネルから「Excelの起動」アクションをドラッグ
- プロパティを次のように設定します:
| 項目 | 設定内容 |
|---|---|
| Excelの起動モード | 既存のファイルを開く |
| ファイルパス | 対象のExcelファイル(例:C:\data\sample.xlsx) |
| 読み取り専用で開く | ✅ チェック(編集不要な場合) |
💡 ポイント
読み取り専用で開くことで、誤ってファイル内容を書き換えるリスクを防げます。
📄 手順③ アクティブなワークシートを設定
- 「アクティブなExcelワークシートの設定」を追加
- 「シート名」に「Data」など対象のシート名を入力
これで、正しいシートを対象に操作できるようになります。
🔍 手順④ 指定列の最終行を自動で取得
ここが最大のポイントです!
- 「Excelワークシートから列における最初の空の行を取得」アクションを追加
- 次のように設定します:
| 項目 | 設定内容 |
|---|---|
| 対象列 | B(データの入っている列) |
| 出力変数名 | 行の空白データ(例:%Row_Blank%) |
このアクションで、「B列の一番下のデータの次の行番号」が自動的に取得されます。
つまり、
B列に8行目までデータが入っている場合 → 9が変数に入ります。
🧮 手順⑤ 最終行をもとにデータ範囲を指定
次に、Excelのデータ範囲を自動で設定します。
- 「Excelワークシートから読み取る」アクションを追加
- 以下のように範囲を指定します:
| 項目 | 入力内容 |
|---|---|
| 先頭セル | B5(データ開始位置) |
| 最終セル | E[%Row_Blank%-1](取得した変数から1を引く) |
例:変数が「9」なら → E8 まで読み取る
- 「最初の行に列名が含まれている」にチェック
- 出力変数を「データ」などに変更(例:%ExcelData%)
💾 手順⑥ Excelを閉じる
- 「Excelを閉じる」アクションを追加
- 「変更を保存せずに閉じる」を選択
これでファイルを汚さずに安全に終了できます。
▶ 手順⑦ フローを実行して確認!
実行すると:
- Excelが自動で開き、
- 最終行を自動判定して、
- データが変数 %ExcelData% に格納されます。
テーブル形式でデータが確認できれば成功です🎉
🧠 補足:複数シートを処理する場合
動画でも紹介されていたように、
1枚のシートだけでなく複数のシートを読み取りたい場合は、次のようにします。
- 「アクティブなワークシートの設定」と「ワークシートから読み取る」アクションをコピー
- シート名を変更して貼り付け
- 最後に「Excelを閉じる」を1番下に移動
これで、複数シートを順番に処理できます。
⚠️ 注意点(動画のコメントより)
- 最終行判定列(B列)より下にコメントやメモを入力すると、誤ってそこまで読み取ってしまうことがあります。
👉 運用時は、データ範囲外に余計な記述をしないよう注意!
💬 よくある質問(FAQ)
Q1. 列をB以外に変えたい場合は?
A. 「列における最初の空の行を取得」アクションの列指定を「C」「D」などに変更すればOKです。
Q2. 行数が増えても対応できますか?
A. はい。変数で最終行を動的に取得しているため、行数が変動しても正確に範囲を認識します。
Q3. 読み取り結果がずれる場合は?
A. 見出し行の有無を確認し、「最初の行に列名を含む」にチェックを入れてください。
📋 まとめ:行数が変わるExcelを自動で読み取る流れ
| ステップ | アクション | 内容 |
|---|---|---|
| 1 | Excelを起動 | ファイルを開く |
| 2 | ワークシート設定 | 対象シートを指定 |
| 3 | 最初の空の行を取得 | 最終行+1を検出 |
| 4 | データを読み取る | 範囲を動的に指定 |
| 5 | Excelを閉じる | 保存せずに終了 |
この構成で、行数が変わるExcelでも安定して読み取れるフローが完成します。
