Power Automate Desktopに使うエクセルの行数が毎回変わる場合の対処法

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

「毎回行数が違うExcel、どうすればいいの?」

Power Automate Desktop(PAD)を使ってExcelのデータを読み込んだり書き込んだりしていると、こんな悩みにぶつかることがあります。

  • 「昨日は10行だったけど、今日は50行…」
  • 「固定の範囲(A2:C20)を指定してたら途中までしか取れない…」
  • 「追加書き込みしたら、前のデータが上書きされた…」

原因はズバリ、「行数が変わっているのに、範囲が固定になっているから」です。

本記事では、毎回行数が変わるExcelに対しても正しく処理できる方法をステップごとに解説します。


対処法①:読み込むときに「最終行を自動で見つける」

✅ こんなときに使う

  • Excelに毎回違う数のデータが入力される
  • 注文一覧や集計結果が日によって増減する

🔧 対応手順(読み込みフローの作り方)

  1. Launch Excel
     開発中は Visible = True にすると内容を見ながら確認できる
  2. Open Excel Workbook
     対象ファイルを開く
  3. Activate Worksheet
     対象のシートを指定(例:Sheet1)
  4. Get first free row on column
     - Column = "A" にして、A列の空行を探す
     - 結果を LastRow 変数に保存
     (例:データがA1〜A50まであれば、LastRow = 51
  5. Set Variable
     - 新しい変数 TargetRange = "A2:C" + %LastRow% を作る
     (結果:A2:C51 のような文字列になる)
  6. Read from Excel worksheet
     - Range = %TargetRange% を指定
     - 読み込んだデータを ExcelData に保存(型は DataTable)

💡 ポイント

  • A列に値がないと正しく最終行を取得できません。
    → 最も確実な列を基準にしましょう(商品名、注文IDなどが入っている列)
  • PADは "A2:C" + %LastRow% のような文字列を範囲として理解します。

対処法②:書き込むときも「空いている次の行」に自動で書く

✅ こんなときに使う

  • 新しいデータを既存Excelファイルに追記したい
  • 上書きせずに、前回の続きに追加したい

🔧 対応手順(書き込みフローの作り方)

  1. Launch ExcelVisible = True
  2. Open Excel Workbook → 書き込み先を指定
  3. Activate Worksheet → 正しいシートを選択
  4. Get first free row on column%NextRow% という変数に保存
  5. Write to Excel worksheet
    • Start column = "A"
    • Start row = %NextRow%
    • Value to write = 書き込むデータ(DataTableなど)

💡 ポイント

  • 書き込みの起点になる列(A列など)に空白行がないように注意
  • 空行に到達するまでの間に、データが飛び飛びに入っていると誤動作することがあります

補足:テーブルを使えばもっとスマートに!

Excel側で「テーブル化(Ctrl + T)」しておくと、PADで Range = Table1 のように指定するだけで、自動で範囲を判別してくれます。

さらに、データが追加されてもテーブルは自動で拡張されるので、Get first free row が不要になる場合もあります。


よくある失敗とその対処法

症状原因対処法
「範囲が存在しません」エラーActivate worksheet を忘れている処理対象のシートをアクティブにする
取得データが空になる最終行の取得が誤っているA列などに必ず値があるようにしておく
追記が前のデータと重なるStart row を固定にしているGet first free row を使って空行を見つける
一部しか読み込まれない範囲を固定(例:A2:C20)にしている最終行まで自動で広げる文字列を使う(A2:C%LastRow%

まとめ:毎回変わる行数にも柔軟に対応しよう

🔹 読み込み時は Get first free row + 変数で範囲を組み立てる
🔹 書き込み時は最終行の次の行を探して追加する
🔹 Excelテーブルや名前付き範囲を使うとさらに便利

このように、ちょっとした工夫をするだけで、「昨日は動いたのに今日はエラー」がなくなる安定フローを作ることができます!

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

この記事を書いた人

目次