UiPathでGoogle検索とExcel操作を自動化をしてみたまとめ(前編)

 今回、UiPathを使用して「Googleの検索結果をExcelに転記する」という作業を自動化したので、その手順をまとめてみました。自分のようなUiPath入門者の方のお役に立つとうれしいです。※長いので前編と後編に分けてます。

UiPathとは (Studio、Robot、Orchestrator)

 UiPathとはUiPath社が提供している「業務や作業を自動化するロボット」を作成するRPAツールです。UiPath の製品には

  • UiPath Studio(実際にロボットを開発する開発環境ツールです)
  • UiPath Robot(UiPath Studioにて作成したロボットを実行するツールで、UiPath Studioをインストールすると同時にインストールされます)
  • Orchestrator(UiPath Robotや実行スケジュールや実行ログをまとめるツール)

の3つの製品があります。今回はUiPath Studio Community Edition(条件つき無償版)を使用しました。

今回の作業の目的(エクセルとブラウザの自動操作)

エクセルシートから取得した文字列をwebブラウザで検索し、検索結果の一部をエクセルシートに出力するという一連の作業を自動化します。

検索内容としては、任意の地域の天気を検索するものとし、一連の流れは次の通りです。
前提条件:エクセルファイルを作成し、Sheet1シートのA1セルに「○○(地名)の天気」と入力しておく
①Chromeを開き、エクセルファイルのA1セルに入っている文言をGoogleの検索バーに入力し検索する
②検索結果画面より天気の文字列を取得し、エクセルシートのA2セルに出力する

UiPathによるロボット作成手順の説明

新規でエクセルファイルを作成し、Sheet1シートのA1セルに「仙台の天気」と入力し保存しておきます。

UiPath Studioを立ち上げます。
今回は検索にGoogle Chromeを使用しますが、UiPathStudioでGoogleChromeを使用するには予め拡張の設定をしておく必要があります。
[ツール]を開き、Chrome拡張機能を選びます。

拡張機能の設定ウィンドウが出たら[OK]を押します。

Chromeを立ち上げ、右上の︙ボタンから[その他のツール]>[拡張機能]を選び、UiPath Web Automationを有効にします。

以上でChromeの設定は終わりです。

UiPathに戻り、ロボットの作成を進めます。UiPathStudioのスタートタブを押します。 今回は空のプロジェクトから作成するので「ライブラリ」ではなくて、「プロセス」を選びます。
「新しい空のプロセス」ウィンドウが開くので、作成するファイル名、保存場所、説明の入力をして「作成」を押します。

作成画面が立ち上がります。

作成画面に表示される3つのパネルの説明をします。
アクティビティパネル
 画面左側のパネルです。UiPath Studioでは「クリックする」「文字の入力をする」等の一つ一つの操作をアクティビティと言います。アクティビティパネルには様々なアクティビティが格納されています。アクティビティパネルから、中央のデザイナーパネルにアクティビティをドラッグ&ドロップし、アクティビティを組み合わせる事でロボットの開発を進めていきます。

デザイナーパネル
 画面中央のパネルです。アクティビティパネルから、アクティビティをドラッグ&ドロップで配置し開発を進めるメインのパネルです。配置したアクティビティをクリックして選択すると、右側のプロパティパネルにそのアクティビティのプロパティが表示されます。

プロパティパネル
 アクティビティには、細かく設定を変更できるプロパティと呼ばれるオプションがあります。デザイナーパネルに配置したアクティビティを選択すると、プロパティパネルから各アクティビティのオプションの設定を変更出来ます。

 アクティビティ単体では1つの操作しか行えませんが、「ワークフロー」というアクティビティを使う事により連続した操作を自動化できます。ワークフローは「シーケンス」「フローチャート」「ステートマシン」の3種類があります。
 今回は「エクセルから文字を取得→検索→検索結果を取得して出力」という流れには、分岐がありませんので「シーケンス」を使用します。
※複雑なシナリオを作成する際はフローチャートやステートマシンを使用するようですが、本記事ではそれらは扱いません。
アクティビティパネル上部の検索バーからシーケンスを検索し、デザイナーパネルにドラック&ドロップで配置します。シーケンスの中にアクティビティを順番に配置する事で、一連のアクティビティが連続して実行されます。

 最初に、エクセルファイルから入力された文字を取得するためのアクティビティを使ってみましょう。アクティビティパネルから「ExcelApplicationScope」を検索し、シーケンスの中に配置します。ExcelApplicationScopeはエクセルワークブックを開き、Excelのアクティビティの対象範囲を設定します。
 ExcelApplicationScope の入力欄に、開きたいエクセルファイルのパスを入力します。UiPathでは、変数以外の文字(文字リテラル)を入力する際は基本的にダブルクォーテーション「”」で囲む必要があるので、今回も囲んでいます。
なお、入力欄右の「…」ボタンからフォルダを開いて選択する事も出来ます。

UiPathのアクティビティが使用するためのエクセルファイルを指定しているスクリーンショット

 アクティビティパネルから「Read Cell」を検索し、ExcelApplicationScopeの Do の枠の中に配置します。 [Input]>[Cell]に取得したいセルの位置、[Input]>[SheetName]にシート名を入力します。取得した情報を変数に入れて置く為、プロパティパネルの[Output] > [Result]を選びます。[Ctrl]+[k]を押すと「変数を設定:」と表示されるので、任意の変数名を入力します。(今回はPlaceにしました。)

 変数には、スコープという有効範囲があります。デザイナーパネル左下の「変数」を押すと、選択していたアクティビティで利用可能な変数が表示されます。
Placeのスコープをクリックするとプルダウンが開きます。今回はDoの中だけでなく、シーケンスの範囲で使用したいのでシーケンスを選択します。
 また、今回はA1セルの情報を文字列として取得したいので、スコープの左にある「変数の型」を選び、「GenericValue」から「String」に変更します。
スコープ、変数の型共にプロパティパネルからも変更可能です。

UiPathにおける変数のスコープの設定でDoからシーケンスに変更する

これでエクセルから取得した「仙台の天気」を「Place」という文字列型の変数に入れ、シーケンス内で使用できる様になりました。

続けて、UiPathからGoogle Chomeを開くためのアクティビティを配置します。アクティビティパネルから「ブラウザーで開く」を検索し、シーケンスの中に配置します。
プロパティパネルの[入力]>[URL]にhttps://www.google.com/を入力し、「”」で囲みます。
また、今回はGoogleChromeで開きたいので、プロパティパネルの[入力]>[ブラウザーの選択]からChromeを選びます。

UiPathからChromeを開くために、アクティビティのリストから「ブラウザーを開く」を選択して、ブラウザーの種類をChromeに設定します

 アクティビティパネルから「文字を入力」を検索し、ブラウザーを開くのDoの中に配置します。

文字を入力アクティビティを配置した画像です

 文字を入力アクティビティの「ブラウザー内で要素を指定」をクリックすると、文字を入力する箇所のセレクターを指定できます。
セレクターとは、UiPath Studioがウインドウやボタンなどの要素を特定するための文字列のことです。
今回はGoogleの検索バーを指定します。
Chromeを前面に出した状態で「ブラウザー内で要素を指定」をクリックすると選択画面になるので、Googleの検索バー部分をクリックします。
選択を取りやめる場合は右クリックか[Esc]で戻ります。

 セレクターを指定したら、プロパティパネルの[入力]>[テキスト]に検索する文字を入力します。今回は、先ほどエクセルファイルから取得した変数が入っている「Place」を入力します。変数なので「”」で囲まないように注意しましょう。

ここまでの動きを実行してみます。
実行は、UiPath Studio左上の[デザインタブ]>[実行]を押します。

Chromeを開き、検索バーに「仙台の天気」の入力が出来ました。
続けて、検索の実行をします。
文字の入力が出来たので、入力確定をする為の[Enter]キーの押下と、入力文字列の検索を実行する為の[Enter]押下をします。
アクティビティパネルから、「ホットキーを押下」を検索し、文字を入力の下に配置します。
2回押下するので、2つ配置します。
「ブラウザー内で要素を指定」をクリックし、Googleの検索バー部分をクリックし、「キー」のプルダウンから「enter」を選びます。
2つ目のホットキーを押下アクティビティも同様に設定します。

2つのホットキーを押下アクティビティの設定が完了したら、実行してみます。

検索結果のページが開きました。
ここまでで、前編終了です。

RPAが初めてでも、UiPathを使ってGoogle検索ができましたね!

後編では、検索結果のページから文字を取得し、エクセルに出力をしたいと思います。