8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【5分でできる】Automation Anywhere A2019でCSVファイルを読み込む

Last updated at Posted at 2019-12-24

概要

クラウド型RPAソフトウェアのAutomation Anywhere A2019では、無料のCommunity Edition1が利用できます。そして、ExcelやCSVなどの身近なファイルを扱うロボットを簡単に作成できます。今回は、CSV ファイルを読み込み、1行ずつ中身を表示してみたいと思います。5分もあればロボットを作成することができます。

利用環境

Automation Anywhere A2019 Community Edition ビルド1598

作成するロボット

以下のCSVファイルをヘッダーを付けてUTF8で読み込み、その後 Message Box で1行ずつ表示していくようにします。CSVファイルはd:\input.csvに配置します。

ユーザー名 会社名 電子メールアドレス パスワード
akiko.yosano 与謝野 晶子 株式会社アールピーエー akiko.yosano@rpa.org 9sbfJLE7
ichiyo.higuchi 樋口 一葉 竹倉部株式会社 ichiyo.higuchi@takekurabe.com cqR3JuE3
jun-ichiro.tanizaki 谷崎 潤一郎 オートメーション株式会社 jun-ichiro.tanizaki@automation.jp iRLmuEdp
kenji.miyazawa 宮沢 賢治 銀河鉄道株式会社 kenji.miyazawa@ginga.ly gPDePfZW
ohgai.mori 鴎外 株式会社林太郎 ohgai.mori@rintaro.org rwfnbcXx
osamu.dazai 太宰 レストランメロス osamu.dazai@merosu.com.au 6JEGHP2J
ryunosuke.akutagawa 芥川 龍之介 ノーズエレクトロニクス ryunosuke.akutagawa@n-ele.com p7gPdXb2
shiki.masaoka 正岡 子規 ホトトギスコミュニケーションズ shiki.masaoka@hototogisu.com aZJv8Us8
soseki.natsume 夏目 漱石 坊ちゃん株式会社 soseki.natsume@bocchan.org C6U2LarS
yukichi.fukuzawa 福沢 諭吉 ケイオウ商会株式会社 yukichi.fukuzawa@ko-shokai.jp QqabeQ96

Control Roomの「マイBot」で、新しくファイル名 (たとえば「Read CSV」など) をつけてロボットを作成しておいてください。
image.png

使うアクション

CSVを扱うアクションは以下の3つがあります。
image.png

加えて、LOOPMessage Box のアクションも使います。
image.png

また、今回、簡単な解法が2通り存在します。やり方によっては Data Table も使います。
image.png

解法1. CSVをLOOPで1行ずつ読み込む方法

今回のように、CSVから読み込んだデータを再活用せずに単純にメッセージボックスで表示するだけであれば、1行ずつCSVから読み込んで都度表示する方法が簡単です。

1-1. CSVファイルの指定部分を作成 (1-1と同じ)

フローの左側のアクションパレットから「CSV/TXT」グループの中の「開く」をフローの開始と終了の間にドラッグ&ドロップします。
image.png
「CSV/TXT: 開く」アクションがフローに追加されたら、これを選択して「アクションの詳細」から以下のものを設定します。

  • ファイルパス: デスクトップファイルを選択して、「参照」ボタンをクリック、しばらくしてファイル選択ダイアログボックスが表示されるので、d:\input.csv を選択します。
  • ヘッダーを含む: チェックボックスをONにします。

image.png
終わったら、「アクションの詳細」ペインの右上にある「適用」ボタンをクリックして保存してください。

1-2. CSVレコードの列挙ループの作成

次に、CSVファイルの中身が10人分のアカウント情報なので、この分だけ繰り返しを行うループの処理を作成します。10件という回数は、ファイルを動的に読み込んで判断するため、実際の実行時にはCSVファイルに何件データが含まれていてもかまいません。

アクションパレットの「ループ」グループから「ループ」アクションを終了の直前にドラッグ&ドロップします。
image.png

ループアクション生成直後にアクションの詳細を見ると「反復子」=n回の繰り返しになっています。このドロップダウンの中身を見てみます。
image.png
「CSV/TXTの各行に対して」を選択します。
image.png

「この変数に現在の行を代入」の「変数の作成」ボタンをクリックします。このアクションにより、CSVを1行ずつ読み込んで、レコード型 (記録となっていますが...)の変数 (1次元配列) に格納します。
image.png

「変数を作成」で名前をrecordsとつけ、「Create & Select」ボタンをクリックします。
image.png
その後、アクションの詳細の右上の「適用」ボタンをクリックしてください。フローの中のループを選択した状態で以下のような画面となります。
image.png

1-3.レコードの表示部分の作成

ループの中に、レコードを表示するメッセージボックス表示アクションを作成します。
アクションパレットの「メッセージボックス」グループから「メッセージボックス」アクションをループの囲いの中にドラッグ&ドロップします。
image.png
メッセージボックスアクションの詳細で、「表示するメッセージを入力します」にテキストを入力します。
image.png

入力するテキストは以下の通りです。$records[0]$は、レコード型変数の最初の要素で、CSVの最初の列が「ユーザー名」であるため、ユーザー名が表示されます。以下、カンマで区切って、次の要素を書いていきます。

$records[0]$,$records[1]$,$records[2]$,$records[3]$,$records[4]$,$records[5]$

その後、アクションの詳細の右上の「適用」ボタンをクリックしてください。

次に、現在開いているCSVファイルセッション「Default」を閉じるアクションを終了の前に挿入します。
image.png

最後に、画面右上の「保存」ボタンをクリックします。

1-4.完成!

さあ、完成です。以下のようなフローが完成しましたね!
image.png

リストで見ると以下のような形です。
image.png

1-5.ロボットの実行

「Run」ボタンでロボットを実行してみましょう。
すると、以下のように、10回、レコードの内容がメッセージダイアログボックスで表示されます。
image.png
最後に以下のメッセージが表示されれば正常終了です。
image.png

解法2. CSVを一気にData Tableに読み込む方法

CSVデータはData Tableに一気に読み込んでおくと、後での活用の幅が広がるため、お勧めの方法です。先ほどの解法と似ていますが、Data Tableにいったんデータを読み込む分だけステップが増えます。

2-1. CSVファイルの指定部分を作成

フローの左側のアクションパレットから「CSV/TXT」グループの中の「開く」をフローの開始と終了の間にドラッグ&ドロップします。
image.png
「CSV/TXT: 開く」アクションがフローに追加されたら、これを選択して「アクションの詳細」から以下のものを設定します。

  • ファイルパス: デスクトップファイルを選択して、「参照」ボタンをクリック、しばらくしてファイル選択ダイアログボックスが表示されるので、d:\input.csv を選択します。
  • ヘッダーを含む: チェックボックスをONにします。

image.png
終わったら、「アクションの詳細」ペインの右上にある「適用」ボタンをクリックして保存してください。

2-2. CSVからData Tableへファイルを読み込む部分の作成

アクションパレットから「CSV/TXT」グループの中の「読み取り」をフローの終了の直前にドラッグ&ドロップします。
image.png

「CSV/TXT: 読み取り」アクションがフローに追加されたら、これを選択して「アクションの詳細」から「値を変数に代入」の右側の「変数を作成」ボタンをクリックします。
image.png

「変数を作成」の画面で、変数に名前を付けて (たとえば「dataTable」)、「Create & Select」ボタンをクリックします。
image.png

「CSV/TXT: 読み取り」アクションの「アクションの詳細」ペインの右上にある「適用」ボタンをクリックして保存してください。

次に、現在開いているCSVファイルセッション「Default」を閉じるアクションを終了の前に挿入します。
image.png

2-3. Data Tableの中身の表示ループの作成

次に、CSVファイルの中身が10人分のアカウント情報なので、この分だけ繰り返しを行うループの処理を作成します。10件という回数は、ファイルを動的に読み込んで判断するため、実際の実行時にはCSVファイルに何件データが含まれていてもかまいません。

アクションパレットの「ループ」グループから「ループ」アクションを終了の直前にドラッグ&ドロップします。
image.png
ループアクション生成直後にアクションの詳細を見ると「反復子」=n回の繰り返しになっています。このドロップダウンの中身を見てみます。
image.png

「Data table: For each row in table」を選択します。
image.png
「Table Variable」に、先ほど作成したdataTable変数をドロップダウンリストから選択します。
image.png
次に「Assign the current row to this variable」の「変数の作成」ボタンをクリックします。
image.png
「変数を作成」で名前をrecordsとつけ、「Create & Select」ボタンをクリックします。
image.png
その後、アクションの詳細の右上の「適用」ボタンをクリックしてください。フローの中のループを選択した状態で以下のような画面となります。
image.png

2-4.レコードの表示部分の作成

ループの中に、レコードを表示するメッセージボックス表示アクションを作成します。
アクションパレットの「メッセージボックス」グループから「メッセージボックス」アクションをループの囲いの中にドラッグ&ドロップします。
image.png

メッセージボックスアクションの詳細で、「表示するメッセージを入力します」にテキストを入力します。
image.png

入力するテキストは以下の通りです。$records[0]$は、レコード型変数の最初の要素で、CSVの最初の列が「ユーザー名」であるため、ユーザー名が表示されます。以下、カンマで区切って、次の要素を書いていきます。

$records[0]$,$records[1]$,$records[2]$,$records[3]$,$records[4]$,$records[5]$

その後、アクションの詳細の右上の「適用」ボタンをクリックしてください。

最後に、画面右上の「保存」ボタンをクリックします。

2-5.完成!

さあ、完成です。以下のようなフローが完成しましたね!
image.png

リストで見ると以下のような形です。
image.png

2-6.ロボットの実行

「Run」ボタンでロボットを実行してみましょう。
すると、以下のように、10回、レコードの内容がメッセージダイアログボックスで表示されます。
image.png
最後に以下のメッセージが表示されれば正常終了です。
image.png

まとめ

いかがでしたか。CSVの読み込みは後で読み込んだデータをどう活用したいかにより、大きく2通りのやり方があります。いずれの方法も、やり方の考え方さえ掴んでしまえば5分もあれば完成させることができますよ。試してみてください!

v11との比較:前のバージョンでの操作は、$Filedata Column(列番号)$という専用のシステム変数で値を参照していましたが、A2019ではレコード型変数を定義して値を格納するように変更になりました。

  1. 無料で使うためには条件があります。250名未満の小規模企業か、開発者であることなど。詳しくはCommunity Editionの解説ページをご覧ください。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?