エクセルの最終行を取得するアクションと設定方法│PowerAutomateDesktop

この記事では、Microsoft無料で提供しているRPA『Power Automate Desktop』で、Excel(エクセル)最終行を取得する方法を説明します。

最終行の取得は、RPAExcel(エクセル)のVBA・マクロ機能を使って事務作業を効率化する場合、順次、複数レコードを処理する際に必ず必要になる機能です。

Power Automate Desktopでも、最終行の取得は1アクションで簡単に実現できます。

今回は、簡単な1アクションの方法のほか、レコードの中間に空白行が存在する可能性がある場合に用いる、列の下から最終行を取得する方法も画像付きで解説しますので、学習中の方やお困りの方は、ぜひご一読ください。

基本的な最終行の取得方法

<参考>

①まずは、アクションExcelの起動を配置

アクションExcelの起動を使うと、変数が自動的に生成されます。この変数Excel(エクセル)ブックを特定するための変数と理解してください。

②アクションの中からExcel – 詳細 – Excelワークシートから列における最初の空の行を取得を配置する。
③列を数値で入力する

Power Automate Desktopの場合、列はすべて数値で扱います。例えば、A列は数値の1B列は数値の2となります。なお、アクションExcelワークシートから列における最初の空の行を取得を使った場合にも、変数が自動的に生成されます。この変数は指定した列の最終行の次の行番号が格納されます。

④フローの完成図

以上で、Excel(エクセル)最終行を取得するフローは完成です。アクションメッセージを表示などを使って、正しく取得できているか確かめてみましょう。

列の下から最終行を取得する方法

下から取得する必要性

基本的な最終行の取得方法は前記の通りですが、実務の世界では、Excel(エクセル)のレコードの中に空白の行が存在しないとも限りません。そのため、最終行の取得列の最も下のセルから上に向かって取得する方法が好まれる傾向にあります。Power Automate Desktopでも実現できますので、紹介しておきます。

<実例>

①セルC3に空白の行が存在するため、C2が最終行となってしまう。
②下から最終行を取得すれば、空白の行があっても最終行を正しく取得できる。
下から最終行を取得するとは・・?

Excel(エクセル)最終行を取得する際、RPAを含むプログラムでは、ctrlキーと方向キーを使って取得していると考えてください。つまり、普通に取得する場合は「セルA1にカーソルをおいた状態で、ctrl+下」でカーソルが止まった位置を最終行と認識します。下から取得する場合には「Excelの最下段の行、セルA1048576にカーソルをおき、ctrl+上」で取得します。この場合、レコードの中間に空白の行があっても正しく取得できますね。

<見本~基本的な最終行の取得方法>

1行目から下に向かってctrl+下の結果、セルC10が最終行と認識される

<見本~下から最終行を取得する>

最下段の行から上に向かってctrl+上
セルC20が最終行と認識される

Power Automate Desktopで実現

フロー全体図

5つのアクションを使う

各アクションの設定(フロー詳細)

1.Excelの起動

2.Excelワークシート内のセルを選択

このアクションで、カーソルをおくセルを指定します。今回は最下段となる1048576を指定しています。なお、このアクションは複数セルを範囲指定するための機能を備えているため、セルを指定する項目だけで4つ存在していますが、ひとつのセルを指定する場合には、上記のように設定します。

3.ウィンドウにフォーカスする

このアクションは重要な意味をもっています。操作対象のExcel(エクセル)シートをアクティブ状態にするためのもので、このアクションを省いてしまうと、次のアクションキーの送信がうまく機能しません。

4.キーの送信

最終行を取得するためのキー操作、ctrl+上を送信しているアクションです。キー入力の間隔の遅延は、ここでは気にしなくてよいです(同時押しのため)。

5.選択したセル範囲をExcelワークシートから取得

この前のアクション、キーの送信で止まったセル位置を変数に格納するためのアクションです。このアクションも複数セルを範囲指定するための機能を備えているため、4つの変数が生成されます。実際には、FirstRowIndexとLastRowIndexに最終行が格納されています(単一のセルのため同じ値が取得される)。

あとがき

事務作業をRPAを使って自動化するとき、想定される事象は可能な限り組み込んでおくことで、処理の品質を高め、メンテンナンスの頻度を少なくすることができます。

例えば、Excel(エクセル)自体に制御を施し、中間に空白の行が存在することがないのであれば、基本的な最終行の取得方法でも構いませんが、実務担当者を交えて想定される事象は可能な限り洗い出し、予め対処しておくとよいでしょう。

ただし、考え過ぎ、完璧主義は禁物です。その後のテスト工程並行運用をうまく使いながら、効率的に取り組みましょう。