Automation Anywhere で Excel 内の表を取り込みたいときに忘れてしまいがちな処理について記載します。
たとえば以下のような表が記載された Excel ファイルがあります。
表の内容
名前 | 生年月日 |
---|---|
山田太郎 | 1971/3/4 |
石川たか子 | 1986/12/4 |
鈴木一郎 | 1976/3/31 |
佐藤栄作 | 1980/12/31 |
西川正二 | 1966/2/15 |
これを読み出したいときには以下のアクションリストのように Open Spreadsheet
でExcel ファイルを開いてから、Loop処理の中で $Excel Column(1)$
を使って1列目 (つまりA列)の値を読み出していきます。
これで良いと思ってアクションリストを実行してみると...何も起こらずに終了してしまいます。デバッグをしてみると、ループ内に処理がいかずに終了してしまっているようです。さて、何が足りないでしょうか!?
表を 1 行ずつループで読むには Get All Cells を最初に必ず入れる
そうです、ここで足りなかったのは Open Spreadsheet
の直後にGet All Cells
(全セルを取得)処理を入れることです。これをしないとメモリ内にExcel表が読み込まれず、空の表を見て、ループ処理はすぐに終了してしまいます。$Excel Column(1)$
の実行はGet All Cells
が実行されていることが前提となっています。
Get All Cells
を2行目に挿入すると、アクションリストは以下のようになります。
これで以下の赤枠内の値がメモリ内に読み込まれ (Open Spreadsheet
でContains Header
(ヘッダーを含む)オプションが指定されているので、ヘッダーの値はループに出てこない)、想定通りに値が順々に表示されていくようになりました。
Get All Cells
の挿入はよく忘れるので、うまくいかないときはチェックしてみてください。