投稿一覧

WinAutomationではじめるRPA入門 (5) 〜 アプリケーション自動化編

更新日: by Keisuke TOMINAGA

こちらの記事では、アプリケーションとの連携について学習します。アプリケーションとは、例えばエクセル、ワード、PDF、E-mail、インターネットブラウザなどです。UIからの操作を記録させる方法でもできますので、効率の良い方法を見つけてください。

今回の内容

エクセル書類からのデータの読み取りと書き込み

  • 読み込み、書き込み
  • 繰り返し

ブラウザを用いた自動化とデータの読み取り

  • 自動検索、結果表示

ワード書類の読み取りと書き込み

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 を選択します。

Webレコーダー

例えば、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の変数に格納されます。

Parse Textアクション

あとは、部分的な文字列を取り出すGet Subtextアクションなどを用いて、金額だけを表示させます。

金額表示

Eメールの自動化

Eメール関連のアクション(一部)

メール関連のアクションは、ほぼメールクライアントと同じ動作をします。 *メール送受信はUIの自動化でも可能です

Eメール関連のアクション

ここでは、SMTPでのメールの送信を試してみます。

SMTPサーバーでセキュリティ設定がされているときに、この方法でうまくいかないときがありますので予めご承知ください。

Send Email アクション

SMTPでメールを送信するためのアクションです。

送信先、件名、本文からファイルの添付もここで指定できます。メーラーでできることはほぼ全てカバーしているのでそれらは、プロパティから設定できます。

読み取ったデータ

必須のプロパティ

読み取ったデータ

メールで送信するため、SMTPサーバーの Port:SMTPサーバーのポート Server:SMTPサーバーのホスト User Nmae:ユーザーネーム Password:SMTPパスワード

の設定が必須です。

Eメールの受信

Retrieve Emails

IMAPでメールを取得するアクションです。

IMAPでメールを取得

送信と同様に、ポート、ホスト、ログイン情報が必須となります。

List of Mail Messages

取得したデータは、Mail Messagesオブジェクトを要素に持つListオブジェクトとなります。

復習

今回は、アプリケーションの自動化について学習しました。

  • エクセル書類からのデータの読み取りと書き込み方法を説明してください
  • ブラザを用いた自動化とデータの読み取りは、どのようにしますか
  • PDFからのデータ読み取り方法には、何がありますか
  • Eメールの送受信では何を設定しなければなりませんか
  • また機会がありましたら、掲載させていただきます。

ご意見ご要望もお待ちしております。

Contact

当社では、RPAの導入に関するご相談を受け付けております。
お気軽にお問い合わせくださいませ。
ご相談・お問い合わせ

電話で相談する
03-6883-2610

【受付時間:平日10:00~18:00】