WinAutomationではじめるRPA入門(5)〜 アプリケーション自動化編
こちらの記事では、アプリケーションとの連携について学習します。アプリケーションとは、例えばエクセル、ワード、PDF、E-mail、インターネットブラウザなどです。UIからの操作を記録させる方法でもできますので、効率の良い方法を見つけてください。
Contents
今回の内容
エクセル書類からのデータの読み取りと書き込み
- 読み込み、書き込み
- 繰り返し
ブラウザを用いた自動化とデータの読み取り
- 自動検索、結果表示
ワード書類の読み取りと書き込み
PDFからのデータ読み取り
- 請求書データの読み取り
Eメールの送受信
- Eメールの設定
- Eメールの受信
- Eメールの送信
エクセルの自動化
テスト用ファイル
交通費精算シートを使ってください。
エクセル関連のアクション
エクセル関連のアクションがいくつか用意されています。
ワークブックを開く
「Launch Excel」アクションをドロップして、プロパティで開くべきワークブックを選択します。
ワークシートを指定する
「Set Active Excel Worksheet」アクションで、シートを指定します。
セル B3 を読み込む
Read from Excel Worksheetアクションで、指定のシートの指定のセルを読み取る設定をします。
最後に、読み取った内容を Display Messageで表示します。ロボットの全体の設定は下記のようになります。
エクセルの自動化 〜 繰り返し
繰り返しの方針
繰り返しの方針は2つあります。
- ロボット側で読み取るセルを一つずつずらす
- エクセルを読み込む時に配列で読み込みFor Eachで処理
効率が良いのは、2番目の For Each を利用した方ですが、一つずつずらして読み取るというのも十分に使える方法です。
ブラウザの自動化
Web レコーダー
リボン > Web Record を選択します。
例えば、kakaku.com と入力してエンターキーを押します。
あとは、自動レコーディングでやってみてください。
データスクレイピング
データの取得
データを取得する際は、文字の上で右クリックして「Extract Element Value」 でもできますが、表のようなデータをまとめて取得することができます。
例えば、下のようなデータがあった場合、表形式でのデータを取得することができます。
表の上で右クリックして「Extract Parent HTML Table」 を選択します。すると、自動的にデータを取得してフォーマットしてくれます。
データの書き込み
次に取得したデータをCSVファイルに書き込んでみましょう。
まずは、スクレイプしたデータがどこに格納されているのかを、「Extract Data from Web Page」アクションのプロパティから確認しましょう。
ここで、取得したデータは、自動的に生成されたExtractInstanceに入っているとわかります。
このままロボットを実行すると、最後にエクセルが自動で立ち上がり、取得したデータが出力され、最後のファイル保存は自動でやってくれません。
今回は、出力するファイル名を指定して、CSVファイルとして保存する操作をしてみます。先ず、保存するデータ形式を「a Variable」に変更します。
「Write to CSV File」アクションを使って、ファイル名を指定します。
ロボットを実行後、ファイルが保存されていることを確認します。
ファイルを開くと、取得したデータがCSVになって保存されたことが確認できました。
さて、次は、ワードの自動化です。
ワードの自動化
現時点では、ワードに関する固有のアクションは存在しないため、マクロレコーダーなどで、手動のワード編集を記録する必要があります。試してみてください。
PDFからのデータ読み取り
テスト用ファイル
2017qsample2をご使用ください。
テキストデータを読み取る
PDF関連のアクションには、ファイルから文字を読み取る「Extract Text From PDF」があります。
読み取ったデータ
プロパティより、読み取ったデータを変数に格納します。
ここでは、result という変数に格納しています。
請求金額だけ読み取る
所定の場所だけを読み取りたい場合、正規表現と呼ばれる方法を用いるのが最も正確です。
正規表現の詳細は、ここでは立ち入りませんが、以下の方法で請求金額だけを読み取ることができます。
Parse Textアクション
Text to parseに検索対象の変数、Text to findに検索パターンを入力します。
Text to findには、「正規表現」を使います。この場合は、「\n御請求額.*円[\r\n]」とします。
マッチしたパターンの返却は、Store Extract Text intoの変数に格納されます。
あとは、部分的な文字列を取り出すGet Subtextアクションなどを用いて、金額だけを表示させます。
Eメールの自動化
Eメール関連のアクション(一部)
メール関連のアクションは、ほぼメールクライアントと同じ動作をします。
*メール送受信はUIの自動化でも可能です
ここでは、SMTPでのメールの送信を試してみます。
SMTPサーバーでセキュリティ設定がされているときに、この方法でうまくいかないときがありますので予めご承知ください。
Send Email アクション
SMTPでメールを送信するためのアクションです。
送信先、件名、本文からファイルの添付もここで指定できます。メーラーでできることはほぼ全てカバーしているのでそれらは、プロパティから設定できます。
必須のプロパティ
メールで送信するため、SMTPサーバーの
Port:SMTPサーバーのポート
Server:SMTPサーバーのホスト
User Nmae:ユーザーネーム
Password:SMTPパスワード
の設定が必須です。
Eメールの受信
Retrieve Emails
IMAPでメールを取得するアクションです。
送信と同様に、ポート、ホスト、ログイン情報が必須となります。
List of Mail Messages
取得したデータは、Mail Messagesオブジェクトを要素に持つListオブジェクトとなります。
復習
今回は、アプリケーションの自動化について学習しました。
- エクセル書類からのデータの読み取りと書き込み方法を説明してください
- ブラザを用いた自動化とデータの読み取りは、どのようにしますか
- PDFからのデータ読み取り方法には、何がありますか
- Eメールの送受信では何を設定しなければなりませんか
- また機会がありましたら、掲載させていただきます。
ご意見ご要望もお待ちしております。