全てのデータを取得する

Excelからデータを読み込む際、「Excelワークシートから読み取り」アクションの取得項目を「ワークシートに含まれる使用可能なすべての値」とすることで、Excelシートの値をすべて取得することが可能です。 (2021年8月のアップデートで追加された機能です。項目が表示されていない場合は、アップデートを行ってください。)

列名を使用する

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

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

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

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

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

業務でExcelを使用する際に、最下行に値を追加したいというケースがあると思います。
PADでは、「Excelワークシートから最初の空の列や行を取得」アクションを使用することで、この処理を行うことが出来ます。
まずは、このアクションを使って、空の列と行を取得してみたいと思います。
使い方は非常に簡単で、「Excelワークシートから最初の空の列や行を取得」アクションを配置するだけで、使用できます。

ただし、この場合はデータが設定された全てのセルを対象とするため、右側の見えない場所にVLOOKUP関数で使用する項目を設定していたりすると、正しく動作しない場合があります。
もし特定の列だけに対し、末尾を取得したい場合は、「Excel ワークシートから列における最初の空の行を取得」アクションを使用することで、回避できます。

このアクションを実行すると、以下のように、はじめの空白セルの位置を取得することが可能です。

末尾のセルが取得できたため、「Excelワークシートに書き込み」アクションと組み合わせることで、末尾に値を追加することが可能になります。

ただし、数式によって見た目のみ値が入っていないように設定されていても、値があるとみなされるため、その場合は下記のように処理する必要があります。

サポート会員様限定のコンテンツです。
ご利用人数は無制限で月額5500円からご利用可能です。

Excelの検索と置換

PADでは、Excelからのデータ検索や値の置き換えを「Excelワークシート内のセルを検索して置換する」アクションで行うことが可能です。 (2021年8月のアップデートで追加された機能です。項目が表示されていない場合は、アップデートを行ってください。)

セルの検索を行うには、検索モードを「検索」に設定します。
「すべての一致」にチェックを付けておくことで、該当するセルをDataTable型として取得することが可能になります。

置換を行う場合は、検索モードを「検索と置換」に設定します。
置換はExcel内で行われるため、置換した後のデータを取得したい場合は、「Excelワークシートの読み取り」アクションと組み合わせて使用する必要があります。

複数の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で操作
または
あらかじめ書式設定したファイルに書き込む