訪問して頂きありがとうございます。まさふくろーです。
この記事では、WEBのテキストボックスから値を取得して、Excelに転記する方法(応用編)をご紹介します。
目次
Web、Excelの画面イメージ
動作イメージ
③データテーブルに格納されているデータ行数分、④~⑥の処理を繰り返す
フローチャート作成手順
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」の部分をダブルクリックし、一つ下の階層に移動します。
得意先コード入力処理
「シーケンス」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。
マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。
「表示名」の変更
「プロパティ」画面にて、以下項目を設定します。
項目名 | 設定内容 |
表示名 | 得意先コード入力処理 |
「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。
「文字を入力」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「キーボード」>「文字を入力」を選択します。
マウスの左クリックを押したまま、「得意先コード入力処理」シーケンス上に移動し、ドロップします。すると、「得意先コード入力処理」シーケンス内に、「文字を入力」アクティビティが設置されます。
「ブラウザー内の要素」を指定
「画面上で指定」をクリックします。
「得意先」の「テキストボックス」をクリックします。
「コレクションの要素」を取得
入力ボックスに「row("得意先コード").ToString」と入力します。このように設定することで、上記で設定したコレクション(データテーブル型の変数:Dt)から得意先コードを取得することができます。
得意先名取得処理
「シーケンス」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。
マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。
「表示名」の変更
「プロパティ」画面にて、以下項目を設定します。
項目名 | 設定内容 |
表示名 | 得意先名取得処理 |
「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。
「クリック」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「マウス」>「クリック」を選択します。
マウスの左クリックを押したまま、「得意先名取得処理」シーケンス上に移動し、ドロップします。すると、「得意先名取得処理」シーケンス内に、「クリック」アクティビティが設置されます。
「ブラウザー内の要素」を指定
「画面上で指定」をクリックします。
「得意先名」の「テキストボックス」をクリックします。
「テキストを取得」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「コントロール」>「テキストを取得」を選択します。
マウスの左クリックを押したまま、「得意先名取得処理」シーケンス上に移動し、ドロップします。すると、「得意先名取得処理」シーケンス内に、「テキストを取得」アクティビティが設置されます。
「ブラウザー内の要素」を指定
「画面上で指定」をクリックします。
「得意先名」の「テキストボックス」をクリックします。
「得意先名の値を格納する変数」の作成
フローチャート下の「変数」タブをクリックします。
以下項目を設定します。
項目名 | 設定内容 |
名前 | CustomerName |
変数の型 | String(文字列型) |
スコープ | サンプル |
「プロパティ」の各種設定
「プロパティ」画面にて、以下項目を設定します。
項目名 | 設定内容 |
値 | CustomerName |
解説 | 取得したテキスト値を変数に格納します。 |
エクセルのセル位置用カウンターの設定
「シーケンス」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。
マウスの左クリックを押したまま、「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」・・・となります。 |
「書き込みする値」を設定
得意先コードクリア処理
「シーケンス」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「シーケンス」を選択します。
マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「シーケンス」アクティビティが設置されます。
「表示名」の変更
「プロパティ」画面にて、以下項目を設定します。
項目名 | 設定内容 |
表示名 | 得意先コードクリア処理 |
「シーケンス」アクティビティで、処理ごとにグループ化し、視覚的にわかりやすくします。
「クリック」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「マウス」>「クリック」を選択します。
マウスの左クリックを押したまま、「得意先コードクリア処理」シーケンス上に移動し、ドロップします。すると、「得意先コードクリア処理」シーケンス内に、「クリック」アクティビティが設置されます。
「ブラウザー内の要素」を指定
「画面上で指定」をクリックします。
「得意先コード」の「テキストボックス」をクリックします。
「文字を入力」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「UI Automation」>「要素」>「キーボード」>「文字を入力」を選択します。
マウスの左クリックを押したまま、「得意先コードクリア処理」シーケンス上に移動し、ドロップします。すると、「得意先コードクリア処理」シーケンス内に、「文字を入力」アクティビティが設置されます。
「ブラウザー内の要素」を指定
「画面上で指定」をクリックします。
「得意先コード」の「テキストボックス」をクリックします。
「+」ボタンをクリックします。
一覧から「back」を選択します。
すると、入力ボックスに「"[k(back)]"」と設定されます。「"[k(back)]"」とは、1文字消すという意味です。
つまり、得意先コード3文字を消すには、一覧から3回「back」を選択します。
フローチャートの関連付け
「サンプル」の部分をクリックし、一番上の階層に戻ります。
「Excelアプリケーションスコープ」を選択し、マウスの左クリックを押したまま「Start」の位置に近づけると、水色の「三角」マークが表示されます。
この状態で左クリックから手を離すことによって、「Start」と「Excelアプリケーションスコープ」アクティビティの関連付けが行われます。
各アクティビティの関連付け
同じ要領で、各アクティビティの関連付けを行います。
動作確認
メニューバーの①「デザイン」タブをクリック⇒②「実行」をクリックし、意図した動きになっているか確認を行います。
最後まで読んでいただき、ありがとうございました!