Excelの各行に対して繰り返す
Automation Anywhere A2019 で Excel ワークブック内のデータの入った各行に対して順番に処理を行うには、「ループ」アクションの中でExcel関係の条件指定を行います。
目次
例題として、以下の表を持つExcelワークブックを開いてB列の値をすべて読み込み表示することを考えます。
A | B | |
1 | A1 | B1 |
2 | A2 | B2 |
3 | A3 | B3 |
4 | A4 | B4 |
「ループ」アクションでExcelの高度な操作を使う方法
Excel/Office のインストールが必要です。
「ループ : ループ」(Loop : Loop) アクションの使い方 (反復子=Excelの高度な操作) break までループで操作を繰り返します
入力:
出力:
|
解法:
- レコード型変数$row$をあらかじめ作成しておきます。
- 「Excelの高度な操作 : 開く」アクションを配置して対象のファイルを開きます。
- 「ループ : ループ」アクションを配置します。
- アクションの詳細パネルで以下を指定します。
- 「反復子」に「Excelの高度な操作 : For each row in worksheet」を指定します。
- 「Assign the current value to this variable」に「row - レコード」を指定します。
- ループの中に「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $row[1]$ を指定します。
- 保存して実行します。
結果:
「B1」「B2」「B3」「B4」と4回メッセージボックスが表示されます。
「ループ」アクションでExcelの基本操作を使う方法
Excel/Office のインストールは不要です。
「ループ : ループ」(Loop : Loop) アクションの使い方 (反復子=Excelの基本操作) break までループで操作を繰り返します
入力:
出力:
|
解法:
- レコード型変数$row$をあらかじめ作成しておきます。
- 「Excelの基本操作 : 開く」アクションを配置して対象のファイルを開きます。
- 「ループ : ループ」アクションを配置します。
- アクションの詳細パネルで以下を指定します。
- 「反復子」に「Excelの基本操作 : Dor each row in worksheet」を指定します。
- 「Assign the current value to this variable」に「row - レコード」を指定します。
- ループの中に「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $row[1]$ を指定します。
- 保存して実行します。
結果:
「B1」「B2」「B3」「B4」と4回メッセージボックスが表示されます。
「ループ」アクションでデータベースを使う方法
Access 2010再頒布化のパッケージ (32 bit) のインストールが必要。64 bit OSでも32 bitをインストールする。Excel/Officeのインストールは不要です。XLSXファイルでなくXLSファイルの場合はJET DB 4.0エンジンがProviderとなる。
「ループ : ループ」(Loop : Loop) アクションの使い方 (反復子=データベース) break までループで操作を繰り返します
入力:
出力:
|
解法:
- レコード型変数$row$をあらかじめ作成しておきます。
- 「データベース : 接続」アクションを配置します。アクションの詳細パネルで以下を指定します。
- 「接続モード」に「デフォルト」を指定します。
- 「Connection string」で「Enter the text」を選択して「Provider=Microsoft.ACE.OLEDB.12.0;Data Source="(Excelファイルのフルパス)";Extended Properties="Excel 12.0 Xml;HDR=NO"」を指定します。
- 「データベース : 読み取り」アクションを配置します。アクションの詳細パネルで以下を指定します。
- 「SELECTステートメントを代入」に「Select * from [Sheet1$$] 」を指定します。
- 「ループ : ループ」アクションを配置します。 アクションの詳細パネルで以下を指定します。
- 「反復子」に「データベース : SQL クエリ Dataset の各行に対して」を指定します。
- 「この変数に現在の行を代入」に「row - レコード」を指定します。
- ループの中に「メッセージボックス : メッセージボックス」アクションを配置してアクションの詳細パネルの「表示するメッセージを入力します」に $row[1]$ を指定します。
- 保存して実行します。
結果:
「B1」「B2」「B3」「B4」と4回メッセージボックスが表示されます。