PADでExcelの最終行を取得する方法

PowerAutomateDesktop

Excelの最終行を取得する方法を説明します。

Power Automate Desktop(PAD)でExcelを操作していると、

  • Excelの最終行まで繰り返し処理したい
  • データが入力されている最後の行を取得したい
  • Excelの最終行にデータを追加したい
  • Excelのデータを最終行まで読み取りたい

といったことがあります。

このような処理を行う場合、Excelの最終行を取得しておくと便利です。

PADには、Excelワークシートの最初の空の行を取得するアクションがあります。

「Excelワークシートから最初の空の列や行を取得」アクションを使用すると、データが入力されている範囲の次の空行を取得できます。

例えば、Excelに5行目までデータが入力されている場合、

1行目 データ
2行目 データ
3行目 データ
4行目 データ
5行目 データ
6行目 空白

となっているため、取得される最初の空行は「6」になります。

そのため、最終行を取得する場合は、取得した値から1を引きます。

最終行 = FirstFreeRow - 1

それでは、実際に設定してみます。

1.Excelを起動する

まず、対象となるExcelファイルを開きます。

アクションから「Excelの起動」を追加してください。
Excelファイルを指定して、対象のExcelを起動します。

Excelを起動すると、Excelインスタンスの変数が作成されます。

デフォルトでは、

%ExcelInstance%

という変数が作成されます。

この変数は、この後のExcel操作で使用します。

2.最初の空の列や行を取得する

次に、「Excelワークシートから最初の空の列や行を取得」アクションを追加します。

このアクションでは、現在のワークシートにある最初の空の行と列を取得できます。
基本的には、設定を変更せずにそのまま使用できます。

実行すると、以下のような変数が作成されます。

%FirstFreeColumn%
%FirstFreeRow%

今回使用するのは、

%FirstFreeRow%

です。

例えば、Excelの5行目までデータが入力されている場合、

FirstFreeRow = 6

となります。

3.最終行を取得する

「FirstFreeRow」は最終行そのものではありません。

データが入力されている最後の行の「次の行」が取得されます。
そのため、最終行を取得するには1を引きます。

次に「変数の設定」アクションを追加します。

変数には、分かりやすいように、

LastRow

と入力します。

値には、

%FirstFreeRow - 1%

と入力します。

これで、

%LastRow%

にExcelの最終行が保存されます。

例えば、

FirstFreeRow = 6

だった場合、

LastRow = 5

となります。

取得した最終行は、Excelの読み取りなどに利用できます。

例えば、1行目から最終行までを読み取りたい場合は、「Excelワークシートから読み取る」アクションを使用します。

セル範囲を指定する場合、

先頭列:1
先頭行:1
最終列:必要な列
最終行:%LastRow%

のように設定できます。

これなら、Excelのデータが増減しても、毎回最終行を手動で変更する必要がありません。

例えば、あるときは100行、別の日には150行のデータがあったとしても、

%LastRow%

を使用すれば、その時点の最終行まで処理できます。

最終行の次の行にデータを追加したい場合は、「Excelワークシートから最初の空の列や行を取得」アクションで取得した「%FirstFreeRow%」が使用できます。

例えば、現在の最終行が100行目だった場合、

FirstFreeRow = 101

となるため、101行目に新しいデータを追加できます。

「Excelワークシートから最初の空の列や行を取得」では、ワークシート全体を基準に最初の空行を取得できます。

一方で、

「Excelワークシートから列における最初の空の行を取得」

というアクションもあります。

こちらは、指定した列を基準に最初の空の行を取得する方法です。

例えば、A列のデータが、

となっている場合、「列」にAを指定すると、A列の最初の空の行を取得できます。

このアクションで作成される変数は、

%FirstFreeRowOnColumn%

です。

この値も、基本的には最終行そのものではなく、最終データの次の行になります。

そのため、最終行を取得する場合は、

%FirstFreeRowOnColumn - 1%

とします。

この場合は、

FirstFreeRowOnColumn = 6
FirstFreeRowOnColumn - 1 = 5

となります。

範囲が変わるような表に対してはよく使用します。
使ってみると分かってくるので、ぜひ試してみてください。

タイトルとURLをコピーしました