列名を使用する

初級編で、DataTableの列名指定について学びました。
PADでは、Excelを読み込む際に、1箇所指定をすると、先頭行を列名として使用することが出来ます。
この機能を利用することで、列が入れ替わったり、途中に列が挿入されても、エラーにならずに処理することが可能となります。

列名を指定する場合は、「Excelワークシートから読み取り」アクションの、詳細にある「範囲の最初の行に列が含まれている」をオンにします。(取得を「セル範囲の値」にしないと表示されません。)

この設定を行うことで、次の画像のようにタイトル行として処理することが出来ます。

ただし、セルの結合が行われている場合は、Column1、Column2のように自動で番号が振られるため、注意してください。

一番下の行と一番端の列を取得する

業務でExcelを使用する際は、「一番下の行を追加する」「全てのデータを取得する」など、毎回行数や列数が変わるデータを扱うことが多いと思います。
PADでは、「Excelワークシートから最初の空の列や行を取得」アクションを使用することで、この処理を行うことが出来ます。
このアクションで注意が必要なのが「空の列と行」を取得する、という点です。

まずは、このアクションを使って、空の列と行を取得してみたいと思います。
使い方は非常に簡単で、「Excelワークシートから最初の空の列や行を取得」アクションを配置するだけで、使用できます。

以下のExcel情報を読んでみたいと思います。

「Excelワークシートから読み取り」アクションで、先ほどのように設定します。

これを実行してみると、結果は次のようになります。

このように空の列と空の行を取得してしまうため、余分なデータが含まれてしまいます。
データを末尾に追加するのであれば、この行番号が正解ですが、データを読み取る際には、空のデータが邪魔をしてしまい、エラーになってしまうことも考えられます。

ではこれを回避するには、どうするのでしょうか。
余分な行と列がいらないので、「Excelワークシートから読み取り」アクションで読み取りする際に、変数の値から「ー1(マイナス1)」すれば回避することが出来ます。

この状態で再度実行してみると、正しく読み取ることが出来ます。

最初は慣れるまで「どうやるんだっけ…」となり大変かもしれませんが、「こういうものだ!」という形で覚えましょう!

複数のExcelを操作する

Excelを複数同時に起動して操作したい、というケースがあると思います。
ただ、AのExcelファイルを開いてデータを読み込み、BのExcelファイルに書き込む、という場合は、AのExcelファイルを読み取った後、Aのファイルを閉じてしまっても、実は何に問題もありません。
これは、PADでExcelデータを読み取った時点で、PAD用のデータに変換、記憶されるので、毎回Excelから読み取っていないためです。
なので、読み取り→書き込みのみであれば、以下のようなフローでも全く問題ありません。

複数のExcelを同時に操作するケースとしては、2つ以上のExcelに同時に書き込みを行いたい場合です。
例えば、「売上情報」を「営業売上報告書」「と顧客別売上管理表」の2つに転記したい、というようなケースです。
この場合は、1つのデータを2つのExcelに書き込みが必要なので、複数のExcelを操作する形になります。

ここで重要になるのが「インスタンス」という考え方です。
「変数とプロパティ」でも少し触れましたが、インスタンスとは、「どのExcel」かを変数にしたものです。
例えば、AのExcelは「%ExcelInstance1%」、BのExcelは「%ExcelInstance2%」と定義することで、AのExcelを操作する時は「%ExcelInstance1%」を指定し、Bを操作する時には「%ExcelInstance2%」を指定することで、操作するファイルを切り替えることが出来ます。

インスタンスを分けるには「Excelの起動」アクションの、生成された変数の名前を変更するだけです。
%ExcelInstance1%、%ExcelInstance2%のように連番だと、後で見た時に分からなくなってしまうため、何を操作するのかを明確化するために、きちんとした名前を付けましょう。
例 %ExcelInstanceUriageReport%

書き込みや、読み込みを行う場合は、各アクションの「Excelインスタンス」を変更するだけです。

これだけで、指定したExcelを操作することが可能になります。

アクションでは出来ない事と代替方法

残念ながら全てのExcel操作を、アクションで処理することは出来ません。
業務で使われる可能性がある操作で、アクションが存在しないものと、その対処については下記をご参照ください。

操作代替方法
シートをコピーするExcel画面をPADで操作
または
VBScriptなどを使用する
シートに色を染めるExcel画面をPADで操作
または
VBScriptなどを使用する
セルに色を染めるExcel画面をPADで操作
または
「キーを送信」でショートカットキー操作
例:{Alt}HH{Right:5}{Enter}
または
VBScriptなどを使用する
シートを印刷するExcel画面をPADで操作
または
「キーを送信」でショートカットキー操作
例:{Alt}PP
※{Ctrl}{(P)}は稀に動かない場合があります。
書式設定Excel画面をPADで操作
または
あらかじめ書式設定したファイルに書き込む

できるPower Automate Desktop ノーコードで実現するはじめてのRPA
Power Automate Desktop サポートプラン
Power Automate Desktop 開発入門講習会