UiPath Excelの情報をWeb画面に転記するサンプル
これまでExcelとWebブラウザの自動操作を紹介しましたが
実務ではExcelなど、他のアプリケーションと組み合わせることが多いでしょう。
この記事ではブラウザとExcelを組み合わせて自動操作する実用的な例を紹介します。
作成する自動化ツール
多くの場合、Web画面を使用する前にユーザ情報を入れてログインします。
サンプルとして最初にログインを自動的に行います。
(実務上は自動化しないことも選択肢です)
![ログイン画面のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-139.png)
このような情報登録フォームにUiPathで自動入力をしていきます。
ここでの「性別」入力により、自動化の重要な要素である
判断(ExcelのIF関数に近い物)を用いてみます
![情報登録画面のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-138.png)
入力する情報はExcelから取り込みます。
シートごとに情報が記載されていて自動的に全てのシートからWebフォームに情報入力します。
ここで自動化の重要な要素である繰り返し(ループ)を用います。
このようなルーチンワークミスなく疲労なく繰り返すことが自動化の最大の利点です。
![情報登録用Excelファイルのキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-140.png)
作成手順
初期設定
新規のプロジェクトを作成し、下の「アクティビティ」タブを選択し
「ワークフロー」より「制御」を開きます。
「シーケンス」アクティビティが表示されるので
それをデザイナーパネルにドロップします。
![UiPathを起動し「新規プロジェクト」より「プロセス」を選択する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-141-1024x708.png)
「デザイナー」パネルに「シーケンス」が追加されます。
この「シーケンス」は幾つか作るので「全体シーケンス」と名前を変えておきます。
![最初の「シーケンス」を「全体シーケンス」に名前を変える図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-142-1024x887.png)
次にこの「全体シーケンス」に変数を用意します。
名前 | 変数の型 | スコープ |
---|---|---|
Password | String | 全体シーケンス |
お名前 | String | 全体シーケンス |
都道府県 | String | 全体シーケンス |
性別 | String | 全体シーケンス |
希望 | String | 全体シーケンス |
全てのシート名 | List<String> | 全体シーケンス |
![変数一覧のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-143.png)
「変数の型」にList<String>は表示されていないので
「型の参照」を開いて検索する必要があります。
下記のように「List<」で検索してList<T>を選び、
セレクトボックスでStringを設定します。
![型の参照からString配列を設定する手順の図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image.png)
ブラウザを開きログイン
業務で使用するWebシステムでは多くの場合でログインが必要です。
そこでブラウザを開きログインを行う必要があります。
まずは「ブラウザーを開く」を「全体シーケンス」にドロップします。
![「シーケンス」の中に「ブラウザーを開く」をドロップする状態の図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-145.png)
「ブラウザーを開く」アクティビティの中にURLを入力する欄があるので開きたいページを入力します。
こちらにテスト用のフォームを用意してあるので使用いただければ幸いです。
ログイン機能はありませんが、IDとパスワードを入れてボタンを押す流れは同じです。
(このフォームでは管理人に空メールが送信されるだけです)
「ブラウザーを開く」アクティビティの名前を変更し、ログイン画面のURLを入力します。
(名前変更は任意ですが変えたほうが便利です)
![「ブラウザーを開く」アクティビティの名前を変更しログイン画面のURLを入力する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-146.png)
ID&パスワードの入力とパスワードの秘匿
次にIDとパスワードを入れてログインする動作を作ります。
それには「レコーディング」から「ウェブ」を選択します。
![「レコーディング」から「ウェブ」を選択するキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-147.png)
「ウェブレコーディング」が表示されるため「テキストを設定」を選択します。
![「ウェブレコーディング」から「テキストを設定」を選択するキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-148.png)
このIDの入力欄にマウスを合わせ(青くなります)
クリックするとUiPathの専用吹き出しが表示されるためIDを入力します。
![レコーディングの状態で入力欄にマウスを合わせると青くなるキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-149.png)
![レコーディングの状態で入力欄をクリックすると専用吹き出しが表示され、そこに入力するキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-150.png)
同様の操作をパスワードにも実施します。
IDとパスワードを入力したら[Esc]キーを押し、保存&終了をクリックします。
![「ウェブレコーディング」から「保存&終了」をクリックする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-151.png)
「ウェブレコーディング」は閉じて元のデザイン画面に戻ります。
そしてレコーディングされた「テキストを設定」の2つを
「ログイン」中の「Do」にドロップします。
![レコーディングされた「テキストを設定」2つを「ログイン」中の「Do」にドロップする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-152.png)
![残った「ウェブ」とその中のアクティビティを削除する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-153.png)
この段階ではパスワードがそのまま記述されて誰にでも判る状態になっています。
個人のパスワードなど隠す必要がある場合はUiPathの暗号化機能を使用します。
それには「パスワードの取得」をパスワード入力の手前にドロップします。
![「パスワードの取得」をパスワード入力の手前にドロップする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-154.png)
「パスワードを取得」を選択し「パスワード」欄にパスワードを手入力し、
結果欄に初期設定で作成したパスワード用の変数を設定します。
そしてテキストの設定の入力値にもパスワード用の変数を設定します。
これでパスワードを秘匿した状態で自動化に組み込むことが可能です。
![パスワードを秘匿する手順の図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-155-1024x603.png)
ログインボタン押下
IDとパスワードを入力したらログイン用のボタンを押下します。
それには「ウェブレコーディング」の「クリック」より「クリック」を選択します。
![「ウェブレコーディング」より「クリック」より「クリック」を選択する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-156.png)
この状態でログインボタンをクリックし、[Esc]キーと「保存&終了」と進めます。
クリックが記録されるのでIDとパスワードのように
クリックのみ移動させて残りを削除します。
![クリックのみ移動させて残りを削除する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-157.png)
これでログイン部分は完成です。
このまま同じブラウザであればログイン状態が続きます。
(ウェブ側の制限時間はありますが)
最後に右上をクリックして縮小表示にしておきましょう。
任意ですが、完成したブロックは最小化しておくと見やすくなります。
![右上の縮小ボタンの図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-158.png)
![縮小された状態のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-159.png)
ExcelからWebへの転記を繰り返す
転記元Excelの設定と読み込み
次に転記をする動作を作ります。
まず「Excel アプリケーション スコープ」を「ログイン」の下にドロップします。
![「Excel アプリケーション スコープ」を「ログイン」の下にドロップ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-160.png)
「読み込み専用」をチェックし、ブックのパスに転記元のExcelを選択します。
今回はこのサンプルファイルを使用します。
![「読み込み専用」をチェックし、ブックのパスに転記元のExcelを選択](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-161.png)
シートが存在するだけ動作を繰り返す
「ブックの全シートを取得」を実行の中にドロップします。
![「ブックの全シートを取得」を実行の中にドロップ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-162.png)
追加された「ブックの全シートを取得」をクリックし
プロパティの全シートに変数として作った「全てのシート名」を設定します。
![「ブックの全シートを取得」をクリックしプロパティの全シートに変数として作った「全てのシート名」を設定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-163.png)
これにより変数「全てのシート名」の中に転記元Excelのシート名の集まりが格納されます。
![変数「全てのシート名」の中に転記元Excelのシート名が格納される図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-164.png)
次に「繰り返し(コレクションの各要素)」を「ブックの全シートを取得」をドロップします。
繰り返しというのは回数や終了条件を決めて同じような動作を複数回、実行することです。
![「繰り返し(コレクションの各要素)」を「ブックの全シートを取得」をドロップ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-165.png)
追加した 「繰り返し(コレクションの各要素)」のプロパティに値を設定します。
プロパティ | 設定値 |
---|---|
TypeArgument | String |
コレクション値 | 全てのシート名 |
![「TypeArgument」に「String」を設定。
「コレクション値」に「全てのシート名」を設定。](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-166.png)
コレクション値には変数の型がList<T>のもの(今回は「全てにシート名」変数)を指定します。
これにより格納されている数だけ繰り返します。
TypeArgumentにはTのデータ型を指定します。
これにより転記元Excelの数だけ動作を繰り返すようになります。
![転記元Excelと繰り返しの関係を図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-167.png)
Excelから転記・送信(繰り返しの中身)
先ほど追加した「繰り返し(コレクションの各要素)」の中に「本体」に繰り返す動作を入れます。
具体的には1シートの情報をWebフォームを転記し送信ボタンを押下する動作です。
まずは 「繰り返し(コレクションの各要素)」に 「セルを読み込み」をドロップします。
ここで転記元Excelのお名前項目を読み込む記述をしていきます。
![「繰り返し(コレクションの各要素)」に「セルを読み込み」をドロップ する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-169.png)
「セルの読み込み」のプロパティの「シート名」、「セル」、「結果」に、お名前の情報を入れていきます。
![「セルの読み込み」のプロパティの「シート名」、「セル」、「結果」にお名前の情報を入れる図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-6-1.png)
これを転記する項目の数だけ追加します。
アクティビティの名前に項目名を入れておくとシーケンスが読みやすくなります。
![転記する項目の数だけ追加した図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-170.png)
転記元Excelからのデータ取得が完了したのでウェブフォームに転記していきます。
「ブラウザーを開く」を読み込みの次にドロップします。
![「ブラウザーを開く」をドロップ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-171.png)
追加した「ブラウザーを開く」に転記先URLを設定します。
サンプルとしてテスト用フォームを使用します。
![転記先Webフォームのアドレスを入力する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-172.png)
ブラウザを開き転記の動作を記録していきます。
「レコーディング」から「ウェブ」を選択します。
![「レコーディング」から「ウェブ」を選択する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-173.png)
まずお名前テキストボックスに入力する動作を記録するため
「テキスト」から「テキストを設定」をクリックします。
![「テキスト」から「テキストを設定」をクリックする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-174.png)
この状態でテキストボックスを選択すると吹き出しが表示されるため
何でもよいので入力しOKボタンを押下します。
![テキストボックスへの入力動作を記録する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-175.png)
次は都道府県のセレクトボックスの選択動作を記録します。
それには「クリック」より「項目を選択」します。
![「クリック」より「項目を選択」する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-176.png)
その状態で都道府県ボックスを選択します。
吹き出しが表示され選択肢が列挙されるため
どこでもよいので選択し、OKボタンを押します。
![都道府県ボックスの選択を記録する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-177.png)
次は性別(ラジオボタン)とメールマガジンの送付希望(チェック)の選択を記録します。
それには「クリック」から「チェック」を選択します。
![「クリック」から「チェック」を選択する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-178.png)
この状態で項目をチェックします。
これを全項目に繰り返します。アンカーの指定は「いいえ」で構いません。
![アンカーについての警告のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-179.png)
この状態で保存&終了を選択します。
![保存&終了を選択する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-180.png)
成功していれば各アクティビティが記録されます。
![記録後のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-181.png)
記録したDoを「ブラウザーを開く」の中にドロップし元のDoを削除します。
![記録したDoを「ブラウザーを開く」の中にドロップし元のDoを削除する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-182.png)
テキストの設定と項目の選択は同様の流れです。
記録したときの値が登録されているため
転記元Excelのデータを格納した変数を設定します。
同時にアクティビティ名も変えておきましょう。
![転記元Excelのデータを格納した変数を設定する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-183.png)
次はメールマガジンのチェックを設定します。
これは何かの値を設定するのではなく購読希望の場合はチェックをし
そうでない場合は何もしないという判断が必要です。
そこで「フローチャート」が登場します。
![フローチャートをドロップする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-184-1024x496.png)
次に 「フロースイッチ」をドロップ します。
![「フロースイッチ」をドロップする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-186-1024x730.png)
「Start」をマウスオーバーすると上下左右に接続点が表示されるので
そこをクリックし下に追加した「フロースイッチ」までドロップします。
![「フロースイッチ」にドロップする図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-187.png)
「Start」から矢印が表示されてフロースイッチに接続されます。
![「Start」から矢印がフロースイッチに接続するキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-188.png)
「フロースイッチ」のプロパティの「TypeArgument」に「String」、
「式」に「希望」変数を設定します。
![「フロースイッチ」のプロパティの「TypeArgument」に「String」、「式」に「希望」変数を設定する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-189.png)
記録したメルマガ希望のINPUTアクティビティをフローチャートの中に追加します。
![記録したメルマガ希望のINPUTアクティビティをフローチャートの中に追加する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-190.png)
フロースイッチからメルマガのINPUTに矢印を繋ぎます。
![フロースイッチからメルマガのINPUTに矢印を繋ぐ図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-191.png)
フロースイッチとメルマガのINPUTを繋ぐ矢印をクリックし
「IsDefaultCase」のチェックを外し、「Case」に「する」を設定します。
![フロースイッチとメルマガのINPUTを繋ぐ矢印をクリックし「IsDefaultCase」のチェックを外し、「Case」に「する」を設定する図解](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-192-1024x674.png)
これでメルマガの設定が完了です。
希望しない場合はWebフォームを動かさないため何も設定しないようにします。
同様に性別のフローチャートを下記のように設定します。
性別は未選択がないため三つのパターン全ての設定します。
![性別のフローチャート](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-193.png)
最後に送信ボタンを押す動作を記録して繋げれば完了です。
![完成状態のキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-194.png)