無料で使えるRPA、PowerAutomate Desktopで、Excelファイルからデータを読み込めます。
Excelファイルのテーブルが決まっているときはいいですが、決まっていないとき(可変行)のときどうすればいいかを解説します。
できるようになること
- Excelの最終行を取得できるようになる
- Loopを回してデータを読み込む
事前条件
- Power Automate Desktopがインストールされている
- ログインして起動までできている
- 新規フロー作成まではできる
まだ済んでいない場合は、以下などを参考にしてインストールから起動まで実施してみてください。
Excelデータの基本的な読み込みや、Excelのテーブルの大きさが決まっている場合は、以下の記事を参考にしてください。
フローを作ってみる:Excelの最終行を取り出す
よく使うケースであろう
Excelからお客様のデータを読み込み、アプリへ入力(するイメージ)
の形を作ってみます。

Excelのデータを読み込んで、テキストを表示するまでをやってみます。
Excelワークシートから最初の空の列や行を取得
左側から「Excelワークシートから最初の空の列や行を取得」をドラッグ・アンド・ドロップします。
Excel起動の直後に置きます。Excel起動と終了は前回の記事のものを使いまわしてます。


- Excelインスタンス
Excelの起動で設定された%ExcelInstance%を設定しておきます。
変数の設定
左側から「変数の設定」を選んで、フローの3番目にドラッグ・アンド・ドロップします。


- 設定
ここでは、LoopIndexとします。
初期値はNewVarですが、なんでもいいです。 - 宛先
宛先?? という感じですが、初期値のことだと思います。
2行目から読み込みたいので、2を設定します。
ループ条件を設定する
左側から「ループ条件」をフローの4番目に入れます。
自動的に「End」も追加されます。


今回2番目に重要なポイントです。
- 最初のオペランド
変数の設定で追加した%LoopIndex%を入れます。 - 演算子
より小さい(<)を選択します。 - 2番めのオペランド
Excelの最終行(Row)を表す%FirstFreeRow%を選択します。
一応、何が起きているか解説すると、以下の感じです。
- 2番めのオペランドである「%FirstFreeRow%」は、Excelの空の行
- 今回の例だと、5行目が空の行なので、「5」となる
- 最初のオペランドである「%LoopIndex%」は、最初は「2」
- 3行目、4行目にデータが入っているので、4行目までは読み込んで欲しい
- 5行目は読み込んで欲しくない
そこで、
- 「%LoopIndex%が5より小さい間は読み込んで欲しい」
- 「%LoopIndex%が%FirstFreeRow%より小さい間は読み込んで欲しい」
- 「%LoopIndex% < %FirstFreeRow%」
という設定をする必要があります。
変数を大きくする
左側から変数を大きくする、をドラッグ・アンド・ドロップして8番目にいれます。
5~7は、前回の記事で作られたものをそのまま流用します。


今回、1番大事なポイント。
- 変数名
%LoopIndex%を設定します。 - 大きくする数値
1ずつ大きくなって欲しいので、1を入れます。
以上で処理は終了です。
試しに動かしてみる
再生ボタンを押してみましょう。
うまく設定されていれば、メッセージボックスが3回表示されるはずです。
Excelファイルのテーブルで、データが入っている領域を増やしたり減らしたりしてみてください。
テーブルの大きさに応じて、ループの回数が変わると思います。
実際に利用するには
これを実際に業務に利用するためには、以下が必要となります。
- 業務のデータが入っているExcelの中身を把握する
- メッセージを表示、のところを、実際にアプリへ入力する設定にする
実際に入力するところは、デスクトップレコーダーを利用するとある程度自動的にフロー作成できると思います。
まとめ
Power Automate Desktopで、Excelの最終行を取得して活用する方法を解説しました。
ツールを初めて触った私でも、5分ほどで作ることができました。
あとはアプリ入力部分を作れば、自動化完成です!
コメント