【初心者向け】RPA入門|ゼロから始めるRPA(Automation 360) ~実践編 交通費申請のチェックロボットを作ってみよう その4~

Automation Anywhere RPA
Automation Anywhereチーム

このシリーズでは、Automation Anywhere社の「Automation 360」を使用してRPAの使い方を解説していきます。

Automation 360 による自動化の解説の全4回のうち今回は第4回になります。まだ第1回、第2回、第3回をご覧になっていない場合は、先に第1回、第2回、第3回をご確認いただいた上で、第4回をご覧ください。

これまでの実践編では、Automation 360を使った「Excelに記載された交通費申請の1行目の出発地、到着地で乗換案内を検索する」というウェブ画面の操作と「乗換案内の料金をExcelへ反映し、乗換案内の料金と交通費申請の金額を比較する」というExcelの操作をしました。今回はAutomation 360を使って交通費申請書の最初の項目だけではなく全ての項目について料金の検索、比較をする処理を実装します。

ウェブ画面から読み取った値をExcelへ入力しよう

  1. 前回作ったロボットの編集画面に移動する
     

     
    まだ作成されていない方は前回の実践編に手順が載っておりますのでご参照ください。
  2.  

  3. 名古屋-名古屋城間の乗換案内のページ上の操作を記録するため、前回作ったロボットをもう一度実行する
     

      2-1. 実行する前に交通費申請書、乗換案内のウェブ画面が開いていないことを確認します。

     

      2-2. [実行]をクリックすると交通費申請書の1行目の出発駅-到着駅間の料金を検索し、申請金額と検索結果の比較結果を記入します。

     
    名古屋-名古屋城間の乗換案内のページは開いたままの状態でロボットの編集画面に戻ってください。

  4.  

  5. 交通費申請の1行目の出発駅のセルをアクティブにする
     
    ロボットに下図のような動きをさせます。交通費申請の1行目の出発駅が選択された状態から処理をスタートするのでC12セルをアクティブにしましょう。

      3-1. [アクション]の検索ボックスに「高度な操作 セル」と入力します。

     

      3-2. [アクション]から[Excelの高度な操作:セルに移動]を[Excelの高度な操作:開く]と出発駅を読み取る[Excelの高度な操作:1つのセルを取得]の間へドラッグ&ドロップします。

     

      3-3. アクションのプロパティの[セルの指定]を選択し、[セルの指定]に「C12」と入力します。
  6.  

  7. 交通費申請書の全ての項目で料金を検索、比較するため、同じ処理を繰り返す
     
    同じ処理を繰り返す場合は[ループ:ループ]アクションを使用します。何について繰り返すかを指定する項目には様々な候補はありますが、今回は指定した回数一連のアクションを繰り返す「n回」についてのみご紹介します。

      4-1. [アクション]の検索ボックスに「ループ」と入力します。

     

      4-2. [アクション]から[ループ:ループ]をC12セルを指定した[Excelの高度な操作:セルに移動]と出発駅を読み取る[Excelの高度な操作:1つのセルを取得]の間へドラッグ&ドロップします。

     

      4-3. [回]に25と入力します。
      交通費申請の明細は25行あります。検索、比較の処理は最大25回実行するので25を設定します。25件の申請があるとは限らないのではと疑問に思われるかもしれませんが、これについてはあとで説明します。

     

      4-4. ループのブロックの下にある全てのアクションをループのブロックの中に移動します。
      アクションを1つずつ移動することもできますが、一度にたくさんのアクションを移動するときに便利な機能があるのでご紹介します。ctrlキーを押しながらいくつかのアクションを選択すると複数選択ができます。また、選択したいアクションが連続している場合は、選択したいアクションの先頭を選択した状態で選択したいアクションの最後尾をshiftキーを押しながら選択すると複数選択ができます。下図が複数選択できたときの画面です。

       
      複数選択した状態でいずれかのアクションをドラッグ&ドロップすると選択したアクション全てを移動させることができます。
  8.  

  9. 出発駅のセルの値を読み取る
     

      5-1. 出発駅を取得する[Excelの高度な操作:1つのセルを取得]の[セルオプション]で[アクティブなセル]を選択します。
  10.  

  11. 到着駅のセルの値を読み取る
     
    アクティブセルを出発駅のセルから到着駅のセルに移動し、アクティブセルの値を変数「到着駅」に保存します。

      6-1. [アクション]の検索ボックスに「高度な操作 セル」と入力します。

     

      6-2. [アクション]から[Excelの高度な操作:セルに移動]を2つ出発駅を読み取る[Excelの高度な操作:1つのセルを取得]と到着駅を読み取る[Excelの高度な操作:1つのセルを取得]の間へドラッグ&ドロップします。

     
    まずは追加した2つのアクションのうち上にあるものを編集します。

      6-3. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ右のセル」を選択します。

     

      6-4. 6-3の手順をもう一方の[Excelの高度な操作:セルに移動]で繰り返します。

     

      6-5. 到着駅を取得する[Excelの高度な操作:1つのセルを取得]の[セルオプション]で[アクティブなセル]を選択します。
  12.  

  13. 金額のセルの値を読み取る
     
    アクティブセルを到着駅のセルから金額のセルに移動し、アクティブセルの値を変数「Excelの金額」に保存します。

      7-1. [アクション]から[Excelの高度な操作:セルに移動]を1つ[Excelの高度な操作:1つのセルを取得]と[Excelの高度な操作:1つのセルを取得]の間へドラッグ&ドロップします。

     

      7-2. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ右のセル」を選択します。

     

      7-3. 金額を取得する[Excelの高度な操作:1つのセルを取得]の[セルオプション]で[アクティブなセル]を選択します。
  14.  

  15. 乗換案内の料金をExcelへ書き込む
     
    アクティブセルを金額のセルから乗換案内のセルに移動し、アクティブセルに変数「乗換案内の料金」の値を入力します。

      8-1. [アクション]から[Excelの高度な操作:セルに移動]を2つ[文字列:置換]と乗換案内の料金を入力する[Excelの高度な操作:セルを設定]の間へドラッグ&ドロップします。

     
    まずは追加した2つのアクションのうち上にあるものを編集します。

      8-2. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ右のセル」を選択します。

     

      8-3. 8-2の手順をもう一方の[Excelの高度な操作-セルに移動]で繰り返します。

     

      8-4. 乗換案内の料金を入力する[Excelの高度な操作:セルを設定]の[セルオプション]で[アクティブなセル]を選択します。
  16.  

  17. 申請された金額と乗換案内の料金の比較結果をExcelへ書き込む
     
    アクティブセルを乗換案内の料金のセルからチェックのセルに移動し、アクティブセルに比較結果(OKまたはNG)を入力します。

      9-1. [アクション]から[Excelの高度な操作:セルに移動]を1つ乗換案内の料金を入力する[Excelの高度な操作:セルを設定]と[If:If]の間へドラッグ&ドロップします。

     

      9-2. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ右のセル」を選択します。

     

      9-3. 「OK」と入力する[Excelの高度な操作:セルを設定]の[セルオプション]で[アクティブなセル]を選択します。

     

      9-4. 「NG」と入力する[Excelの高度な操作:セルを設定]の[セルオプション]で[アクティブなセル]を選択します。
  18.  

  19. 次のループに入ったときに次の行の出発駅のセルがアクティブな状態になっているようにする
     
    ループでは最初にアクティブなセルの値を変数「出発駅」に値を保存します。下図のようにループの最後に次の行の出発駅のセルをアクティブにする処理を追加します。

      10-1. [アクション]から[Excelの高度な操作:セルに移動]を4つIfブロックとフローの終了の間へドラッグ&ドロップします。
      ループのブロックの内側に配置できていることを確認してください。

     
    まずは追加した4つのアクションのうち一番上にあるものを編集します。

      10-2. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ下のセル」を選択します。

     
    次に追加した4つのアクションのうち上から2番目にあるものを編集します。

      10-3. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「行の先頭」を選択します。

     
    次に追加した4つのアクションのうち上から3番目にあるものを編集します。

      10-4. アクションのプロパティの[アクティブなセル]を選択し、ドロップダウンから「1つ右のセル」を選択します。

     
    最後に追加した4つのアクションのうち一番下にあるものを編集します。

      10-5. 10-4の手順を一番下の[Excelの高度な操作:セルに移動]で繰り返します。
  20.  

  21. 検索画面が表示された状態で次のループが開始するようにする
     
    検索結果画面のまま次の行のループに入ると、ロボットは出発駅、到着駅を入力できないのでエラー終了してしまいます。ループの最後に検索画面に戻る処理を追加しましょう。

    これまでは画面上での操作をロボットに記録する際は[記録を開始]アイコンをクリックしていましたが、左側の[アクション]から[レコーダー:キャプチャ]を追加する方法もあります。今回はこの方法を使ってアクションを追加します。

      11-1. [アクション]の検索ボックスに「レコーダー」と入力します。

     

      11-2. [アクション]から[レコーダー:キャプチャ]をループのブロックの一番下へドラッグ&ドロップします。
      ループのブロックの内側に配置できていることを確認してください。

     

      11-3. [ウィンドウ]で[変数]が選択された状態で[必須]と表示されている箇所の[(x)]をクリックします。

     

      11-4. 「値を挿入」画面の[変数を選択 ▼]でドロップダウンから「検索結果画面」を選択します。

     

      11-5. 「値を挿入」画面の[挿入]をクリックします。

       
      [必須]と表示されていた箇所に選択した「$検索結果画面$」と表示されていればOKです。

     

      11-6. [オブジェクトをキャプチャ]をクリックします。

     

      11-7. 画面が名古屋-名古屋城間の乗換案内のページに移ったら、マウスを「TOP > 乗換案内 > 乗換案内 名古屋⇒名古屋城」の「乗換案内」の上へ移動します。
      クリックはしません。移動させるだけです。

      移動すると「乗換案内」の周りに赤枠が表示されます。これはAutomation 360がリンクを操作対象として認識した合図です。

     

      11-8. 「乗換案内」の周りが赤枠の状態でマウスをクリックします。
      正しく記録できた場合、下図のように操作の対象となるオブジェクトのプレビュー、オブジェクトに実行するアクションの候補などが出現します。

     

      11-9. [オブジェクトに実行するアクション]のドロップダウンから「クリック」を選択します。
  22.  

  23. ウィンドウ変数をループで使用できるよう編集する
     
    ロボットにブラウザ操作をさせる場合、どのウィンドウに対して処理をするか指定する必要があります。ウィンドウタイトルやどのブラウザ(EdgeやChromeなど)であるかといった情報を保持しているのがウィンドウ変数です。

    出発駅、到着駅を入力し検索ボタンをクリックする操作は全て同じ名前のウィンドウで行われますが、料金を読み取ったり検索画面に戻る処理は検索した区間によってウィンドウタイトルが異なります。検索ごとにウィンドウタイトルが変わる場合も同じウィンドウ変数を使いたい場合、ワイルドカードを使いましょう。ワイルドカードは2種類あります。

    • %  ⇒ 任意の1文字を表す
    • *    ⇒ 任意の0文字以上を表す

     
    身の回りの単語に当てはめて考えてみましょう。

    「%水」という条件で指定したら「軟水」「降水」「淡水」「清水」等がヒットする単語になります。「任意の1文字」+「水」で構成されたワードがヒットするので「水曜」や「食塩水」はヒットしません。

    「*水」という条件で指定したら「香水」「炭酸水」「過酸化水素水」「水」等がヒットする単語になります。「任意の0文字以上」+「水」で構成された単語がヒットするので「%水」でヒットした単語は全て該当しますし、「*」が0文字の場合の「水」もヒットします。「%水」と同様に「水」の後ろに文字があるとヒットしません。
     
    ウィンドウ変数に話を戻します。駅名の文字数はいつも同じとは限らないので今回のようなケースでは任意の0文字以上を表す「*」を[ウィンドウタイトル]で使いましょう。

      12-1. [変数]タブを表示し、ウィンドウ変数「検索結果画面」の三点リーダーをクリックし[変数を編集]を選択します。

     

      12-2. 「変数を編集」画面の[ウィンドウタイトル]の「名古屋から名古屋城」を「*」に置き換えます。
      「*」が全角ではなく半角であることを確認しましょう。

     

      12-3. 「変数を編集」画面の「適用」をクリックします。

     
    これでどの区間の乗換案内のウィンドウが開いていても料金を読み取る処理、検索画面に戻る処理を実行することができます。

  24.  

  25. ループを抜ける条件を追加する
     
    25回検索と比較をする処理をするフローになっていますが、交通費申請の件数は申請者によって異なります。申請を全件処理したらループを抜け出す処理を追加しましょう。使うのは[If:If]と[ループ:中断]です。これらはループの内側に配置します。[ループ:中断]が呼び出されるとループのブロックを抜けループの外のアクションに移動します。出発駅のセルが空だったとき全件の検索、比較が完了したとみなし、ループを終了します。

      13-1. [アクション]タブを表示し、[アクション]の検索ボックスに「if」と入力します。

     

      13-2. [アクション]から[If:If]を出発駅を読み取る[Excelの高度な操作:1つのセルを取得]と[Excelの高度な操作:セルに移動]の間へドラッグ&ドロップします。

     

      13-3. [条件]のドロップダウンを展開し、ドロップダウンの一番下にある「文字列 > 文字列の条件」を選択します。

     

      13-4. [元の値(任意)]の[(x)]をクリックします。

     

      13-5. 「値を挿入」画面の[変数を選択 ▼]でドロップダウンから「出発駅」を選択します。

     

      13-6. 「値を挿入」画面の[挿入]をクリックします

       
      [元の値(任意)]に「$出発駅$」と表示されていればOKです。

     

      13-7. [アクション]の検索ボックスに「中断」と入力します。

     

      13-8. [アクション]から[ループ:中断]を出発駅が空であるか判定する[If:If]の中へドラッグ&ドロップします。
  26.  

  27. 後処理を実装する
     
    ループの外に[Excel:閉じる]、[ウィンドウ:閉じる]アクション追加します。ロボットが使ったファイルやウィンドウは処理の最後に閉じることを推奨します。

      14-1. [アクション]の検索ボックスに「高度な操作 閉じる」と入力します。

     

      14-2. [アクション]から[Excelの高度な操作:閉じる]をループのブロックの外、フローの終了の上へドラッグ&ドロップします。

     

      14-3. [アクション]の検索ボックスに「ウィンドウ 閉じる」と入力します。

     

      14-4. [アクション]から[ウィンドウ:閉じる]を[Excelの高度な操作:閉じる]とフローの終了の間へドラッグ&ドロップします。

     

      14-5. [ウィンドウ]で[変数]が選択された状態で[必須]と表示されている箇所の[(x)]をクリックします。

     

      14-6. 「値を挿入」画面の[変数を選択 ▼]でドロップダウンから「検索画面」を選択します。
      ループを途中で抜けた場合も25回検索、比較を繰り返した後も表示されているブラウザは検索画面なので、ウィンドウ変数は「検索画面」を指定します。

     

      14-7. 「値を挿入」画面の[挿入]をクリックします。

       
      [必須]と表示されていた箇所に「$検索画面$」と表示されていればOKです。
  28.  

  29. 実行する
     

      15-1. 実行する前に交通費申請書、乗換案内のウェブ画面が開いていないことを確認します。

     

      15-2. [実行]をクリックすると交通費申請書の全ての行の出発駅-到着駅間の料金を検索し、申請金額と検索結果の比較結果を記入します。

     

      15-3. 交通費申請を開いて処理結果を確認します。
      全件の申請が検索、比較されていたら成功です。

 
これでExcelの交通費申請を自動化することができました。自動化の一連の流れはご理解いただけましたでしょうか。自動化したい業務があればぜひこの記事を参考にロボットを作ってみてください。

ロボットの作成や運用に何かお困りごとがあればお気軽にお問い合わせください。

弊社サービスのご紹介

<無料ハンズオンセミナー>
RPA導入をご検討中の企業様向けに、Automation 360を使った無料のハンズオンセミナーを開催します。
実際にロボットを作成し、RPA導入の効果を体感していただけます。
内容については、お問い合わせください。

<Automation 360 Managed Service>
RPAの導入や運用に課題を感じていませんか?
システム担当者の負担が増えたり、自動化業務の拡大が進まないといった悩みをお持ちの企業様に、弊社の「Automation 360 Managed Service」をおすすめします。
RPAの運用管理を代行することで、お客様の自動化推進を強力にサポートいたします。

お問い合わせはこちら

記事を書いた人

Automation Anywhereチーム

ラクして効率アップ!RPAの手軽さをチームでお届けします!

関連記事

TOP