【UiPath】WEBのコンボボックスから値を取得して、Excelに転記してみる~応用編~

訪問して頂きありがとうございます。まさふくろーです。

この記事では、WEBのコンボボックスから値を取得して、Excelに転記する方法(応用編)をご紹介します。

目次

Web、Excelの画面イメージ

  1. Excelから得意先コードを取得する
  2. Webの得意先に①で取得した得意先コードをセットし、検索(フォーカス移動で検索)
  3. Webから締日を取得する
  4. Excelの「B2」セル~「B4」セルまで順番に締日を転記する

 

動作イメージ

  1. UiPath実行
  2. Excelから得意先コードを取得
  3. ②で取得した得意先コードをデータテーブルに格納
  4. データテーブルから得意先コードを取得⇒Webの得意先に得意先コードをセット⇒検索(フォーカス移動で検索)
  5. Webから締日を取得
  6. ExcelのB列に転記

 

③データテーブルに格納されているデータ行数分、④~⑥の処理を繰り返す

 

フローチャート作成手順

Excelから得意先コードを取得

「Excel アプリケーションスコープ」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「処理」>「Excelアプリケーションスコープ」を選択します。

 

マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「Excelアプリケーションスコープ」アクティビティが設置されます。(ダブルクリックでも可能です。)

 

「対象のExcelファイル」を指定

「Excelアプリケーションスコープ」の「Double-click to view」の部分をダブルクリックし、一つ下の階層に移動します。

 

「…」ボタンをクリックし、読み込みをする対象のExcelファイルを指定します。

 

「範囲を読み込み」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「処理」>「範囲を読み込み」を選択します。

 

マウスの左クリックを押したまま、「実行」シーケンス上に移動し、ドロップします。すると、「実行」シーケンス内に、「範囲を読み込み」のアクティビティが設置されます。

 

「データテーブル型」の変数の作成

フローチャート下の「変数」タブをクリックします。

 

以下項目を設定します。

 

 

項目名 設定内容
名前 Dt
変数の型 DataTable
スコープ サンプル

データテーブルについて

データテーブルとは、一時的にデータを格納しておくための入れ物です。

 

スコープについて

スコープを「サンプル」に設定すると、変数「Dt」は、フローチャート「サンプル」内であればどこでも使用可能となります。

「プロパティ」の各種設定

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
ヘッダーの追加 チェック(ヘッダーがある場合)
シート名 Sheet1(エクセルのシート名)
データテーブル Dt(エクセルのデータを一時的に保存しておく入れ物)

一番上の階層に戻る

「サンプル」の部分をクリックし、一番上の階層に戻ります。

 

カウンター変数の初期値設定

「代入」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「代入」を選択します。

 

マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「代入」アクティビティが設置されます。(ダブルクリックでも可能です。)

 

「カウンター変数」の作成(Excelのセル位置を動的にするための変数)

フローチャート下の「変数」タブをクリックします。

 

以下項目を設定します。

 

 

項目名 設定内容
名前 Count
変数の型 Int32(整数型)
スコープ サンプル
「カウンター変数の初期値」の設定

「代入」アクティビティの左側に「Count」、右側に「1」と入力します。

 

 

解説 Excelのセルの位置を1行目に設定(ヘッダー部分)。

繰り返し処理の設定

「繰り返し(各行)」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「プログラミング」>「データテーブル」>「繰り返し(各行)」を選択します。

 

マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「繰り返し(各行)」アクティビティが設置されます。(ダブルクリックでも可能です。)

 

「コレクション」の設定

「繰り返し(各行)」の「Double-click to view」の部分をダブルクリックし、一つ下の階層に移動します。

 

「コレクション」に上記で作成した、DataTable型の変数「Dt」を指定します。このように設定することで、変数「Dt」に格納されたデータを1行ずつ順番に処理することができます。

 

得意先コード入力処理

「シーケンス」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。

 

マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。

 

「表示名」の変更

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
表示名 得意先コード入力処理

「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。

 

「文字を入力」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「キーボード」>「文字を入力」を選択します。

 

マウスの左クリックを押したまま、「得意先コード入力処理」シーケンス上に移動し、ドロップします。すると、「得意先コード入力処理」シーケンス内に、「文字を入力」アクティビティが設置されます。

 

「ブラウザー内の要素」を指定

「画面上で指定」をクリックします。

 

「得意先」の「テキストボックス」をクリックします。

 

「コレクションの要素」を取得

入力ボックスに「row("得意先コード").ToString」と入力します。このように設定することで、上記で設定したコレクション(データテーブル型の変数:Dt)から得意先コードを取得することができます。

 

締日取得処理

「シーケンス」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。

 

マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。

 

「表示名」の変更

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
表示名 締日取得処理

「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。

 

「クリック」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「マウス」>「クリック」を選択します。

 

マウスの左クリックを押したまま、「締日取得処理」シーケンス上に移動し、ドロップします。すると、「締日取得処理」シーケンス内に、「クリック」アクティビティが設置されます。

 

「ブラウザー内の要素」を指定

「画面上で指定」をクリックします。

 

「締日」の「コンボボックス」をクリックします。

 

「テキストを取得」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「コントロール」>「テキストを取得」を選択します。

 

マウスの左クリックを押したまま、「締日取得処理」シーケンス上に移動し、ドロップします。すると、「締日取得処理」シーケンス内に、「テキストを取得」アクティビティが設置されます。

 

「ブラウザー内の要素」を指定

「画面上で指定」をクリックします。

 

「締日」の「コンボボックス」をクリックします。

 

「締日の値を格納する変数」の作成

フローチャート下の「変数」タブをクリックします。

 

以下項目を設定します。

 

 

項目名 設定内容
名前 ClosingDate
変数の型 String(文字列型)
スコープ Body
「プロパティ」の各種設定

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
ClosingDate
解説 取得したテキスト値を変数に格納します。

エクセルのセル位置用カウンターの設定

「シーケンス」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。

 

マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。

 

「表示名」の変更

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
表示名 エクセルのセル位置用カウンター

「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。

 

「代入」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「代入」を選択します。

 

マウスの左クリックを押したまま、「エクセルのセル位置用カウンター」シーケンス上に移動し、ドロップします。すると、「エクセルのセル位置用カウンター」シーケンス内に、「代入」アクティビティが設置されます。

 

「カウンター変数」の設定

「代入」アクティビティの左側に「Count」、右側に「Count+1」と入力します。

 

 

解説 このように設定することで、繰り返し処理が行われるたびにカウンター変数「Count」の値が1つずつ加算されていきます。

上記「カウンター変数の初期値」の設定で、カウンター変数「Count」の値は「1」が設定されているので、代入後のカウンター変数「Count」の値は「2」からはじまります。

エクセルのセルへの書き込み処理

「シーケンス」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。

 

マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。

 

「表示名」の変更

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
表示名 セル書き込み処理

「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。

 

「Excel アプリケーションスコープ」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「処理」>「Excelアプリケーションスコープ」を選択します。

 

マウスの左クリックを押したまま、「セル書き込み処理」シーケンス上に移動し、ドロップします。すると、「セル書き込み処理」シーケンス内に、「Excelアプリケーションスコープ」アクティビティが設置されます。

 

「対象のExcelファイル」を指定

「…」ボタンをクリックし、書き込みをする対象のExcelファイルを指定します。

 

「セルに書き込み」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「セルに書き込み」を選択します。

 

マウスの左クリックを押したまま、「実行」シーケンス上に移動し、ドロップします。すると、「実行」シーケンス内に、「セルに書き込み」アクティビティが設置されます。

 

「書き込みするセル」の設定

セル範囲に「"B" + Count.ToString」と設定します。

 

 

解説 「"B" + Count.ToString」とは、「B」という文字と「カウンター変数」を連結するという意味です。

カウンター変数は、「2」~「データテーブルに格納されている行数」まで「1」ずつ加算されるので、「"B" + Count.ToString」の結果は、「B2」「B3」「B4」・・・となります。

「書き込みする値」を設定

書き込みの値に上記で作成した変数「ClosingDate」を設定します。

 

得意先コードクリア処理

「シーケンス」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。

 

マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。

 

「表示名」の変更

「プロパティ」画面にて、以下項目を設定します。

 

 

項目名 設定内容
表示名 得意先コードクリア処理

「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。

 

「クリック」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「マウス」>「クリック」を選択します。

 

マウスの左クリックを押したまま、「得意先コードクリア処理」シーケンス上に移動し、ドロップします。すると、「得意先コードクリア処理」シーケンス内に、「クリック」アクティビティが設置されます。

 

「ブラウザー内の要素」を指定

「画面上で指定」をクリックします。

 

「得意先コード」の「テキストボックス」をクリックします。

 

「文字を入力」アクティビティの設置

①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「キーボード」>「文字を入力」を選択します。

 

マウスの左クリックを押したまま、「得意先コードクリア処理」シーケンス上に移動し、ドロップします。すると、「得意先コードクリア処理」シーケンス内に、「文字を入力」アクティビティが設置されます。

 

「ブラウザー内の要素」を指定

「画面上で指定」をクリックします。

 

「得意先コード」の「テキストボックス」をクリックします。

 

「+」ボタンをクリックします。

 

一覧から「back」を選択します。

 

 

すると、入力ボックスに「"[k(back)]"」と設定されます。「"[k(back)]"」とは、1文字消すという意味です。

 

 

つまり、得意先コード3文字を消すには、一覧から3回「back」を選択します。

 

フローチャートの関連付け

「サンプル」の部分をクリックし、一番上の階層に戻ります。

 

「Excelアプリケーションスコープ」を選択し、マウスの左クリックを押したまま「Start」の位置に近づけると、水色の「三角」マークが表示されます。

 

 

この状態で左クリックから手を離すことによって、「Start」と「Excelアプリケーションスコープ」アクティビティの関連付けが行われます。

 

各アクティビティの関連付け

同じ要領で、各アクティビティの関連付けを行います。

 

動作確認

メニューバーの①「デザイン」タブをクリック⇒②「実行」をクリックし、意図した動きになっているか確認を行います。

最後まで読んでいただき、ありがとうございました!

WEBのコンボボックスの内容をExcelに転記する(基本編)はこちら