Top > EXCELを自動操作する > 範囲指定したセルから値を取得する

範囲指定したセルから値を取得する

Excelメニューの「範囲を取得」を利用して範囲指定したセルの文字列を取得する方法を解説します。またサンプルとして、取得したExcelの文字列をYahooのテキストボックスにセットする事例を紹介します。

範囲指定設定の完成版

目次
1:Excelを開く
2:Variable(変数)の準備
3:範囲を取得
4:ウェブサイトを開く
5:ループの設定(1行を抽出)
6:ループの設定(1セルを抽出)
7:ウェブの要素を追加
8:稼働確認

1:Excelを開く

サンプルファイルとして以下のExcelファイルを用意し、「c:\temp\Sample002.xlsx」として保存します。B2列(東海道新幹線)からC5列(かがやき)に記載された文字列をWorkFusion Studioで抽出します。

文字列抽出の元となるExcelファイルのイメージ

「スプレッドシートを開く」を追加してExcelファイル(ブック)を開きます。
1:画面左側のメニューから「Excel → スプレッドシートを開く」を画面中央までドラッグ
2:ドラッグした「スプレッドシートを開く」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

スプレッドシートを開く設定

1:ファイルの場所
閲覧ボタンを押し、ファイル選択ダイアログから「c:\temp\Sample002.xlsx」を選択して下さい。

2:Variable(変数)の準備

Excelから取得した文字列を格納する変数(Variable)を用意します。事例の場合、セルB2~C5の文字を一時的に格納する箱だと思って下さい。
1:画面左側の「Recorder Variables」タブをクリック
2:Variableに名前を付ける。名前は何でもいいです。
3:「Type」列を「テーブル」にする

注意:Variableの名前は半角小文字の英数字と記号のみ入力可能です。つまり「a」は入力可能ですが、「A」は使えません。

テーブル型Variableの作成方法

3:範囲を取得

Excelシート内のセルB2~C5の文字を、作成したVariable(事例での名前はtbl_excelread)に読み込みます。
1:画面左側のメニューから「Excel → 範囲を取得」を追加済みの「スプレッドシートを開く」の上までドラッグ
2:ドラッグした「範囲を取得」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

範囲を取得を追加する方法

1:設定
Excelの値を読み込む範囲を設定します。事例の場合、セルB2~C5を範囲とするよう指定。
2:セル値をVariableに保存
どのVariable(変数)に読み込むかを設定します。範囲指定の場合、テーブル型のVariableのみ選択可能です。ここでは「tbl_excelread」を選択。

ここまでの操作でExcel上の文字列がVariableに格納されます。

4:ウェブサイトを開く

Excelから読み込んだ値をWEB上のテキストボックスにセットする方法を紹介します。
1:画面左側のメニューから「ウェブ → ウェブサイトを開く」を画面中央までドラッグ
2:ドラッグした「ウェブサイトを開く」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

ウェブサイトを開く設定

1:サイトのURL
文字をセットしたいページ(URL)を入力。事例ではYahooのTOPページを指定しています。
2:ブラウザ
どのブラウザでWEBページを開くかを設定。事例では「Chrome」を指定しています。
3:タイムアウト
ページの表示まで最高1000ミリ秒(=1秒)待機するよう設定しています。

5:ループの設定(1行を抽出)

Excelから読み込んだ一行分の情報を取得するため、ループ設定を追加します。
1:画面左側のメニューから「ループ → 各々に対して」をウェブサイトを開くの上までドラッグ
2:ドラッグした「各々に対して」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

For Eachループの追加

1:それぞれに対して入れ子になったアクションを実行
左側のテキストボックスに一行分のデータを格納するVariableの名前を自由に設定します(事例ではtblRow)。なおVariableは「リスト型」になります。
右側のコンボボックスは読み込み対象とするテーブル型のVariableを設定します。Excelの値を読み込み済みである「tbl_excelread」を選択して下さい。「tbl_excelread」の一行分を「tblRow」にセットする...という意味です。

For Eachループで一行分を取得する方法

2:項目を反復
一行ずつデータを抽出するため、「行ごと」を選択します。

6:ループの設定(1セルを抽出)

先のループで読み込んだ1行分の情報から1セル分の情報を取得するため、ループ設定を追加します。
1:画面左側のメニューから「ループ → 各々に対して」を追加済みの「各々に対して」の上までドラッグ
2:ドラッグした「各々に対して」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

For Eachループの追加

1:それぞれに対して入れ子になったアクションを実行
左側のテキストボックスに1セル分のデータを格納するVariableの名前を自由に設定します(事例ではcol1)。
右側のコンボボックスは読み込み対象とするリスト型のVariableを設定します。一行分の値を読み込み済みである「tblRow」を選択して下さい。「tblRow」の一行分を「tblRow」にセットする...という意味です。

For Eachループで一行分を取得する方法

2:フィルタ
一行の中から抽出する列番号を指定します。事例の場合、一行の中にExcelのB列(東海道新幹線の列)とC列(のぞみの列)の2列が存在します。B列を抽出する場合は「1」、C列を抽出する場合は「2」を指定します。
リスト型「tblRow」の2列目を、col1にセットしてね...という意味です。

7:ウェブの要素を追加

1セル分の情報をウェブ上のテキストボックスに設定します。
1:画面左側のメニューから「ウェブ → ウェブの要素を追加」を追加済みの「各々に対して」の上までドラッグ
2:ドラッグした「ウェブの要素を追加」をクリック
3:画面右側の設定項目に値をセット(設定内容は以下に記載)

ウェブ上のテキストボックスに文字をセットする設定

1:モード
「値を設定」を選択。
2:Variableから値を使用
1セル分の情報をセット済みの文字列型Variable「col1」を選択。
3:要素のX Path
WEBページ上のテキストボックスのX Pathを設定。X Pathの調べ方はX Pathを理解するをご参照下さい。
4:詳細
実行すると文字のセットが早いスピードで行われます。ゆっくり確認するため、実行前に1000ミリ秒(=1秒)待機するよう設定しています。

8:稼働確認

入力を完了しましたら、稼働確認します。画面中央上部にある「レコーディングを再生」ボタンを押して下さい。なおボタンを押すと変更情報(レコーディング)が自動的に保存されます。

レコーディングの稼働確認

しばらくすると画面右下に以下のようなウィンドウが表示されます。何もせずにお待ち下さい。起動に少々時間がかかります。

レコーディング稼働中のイメージ

さらにしばらくするとブラウザが起動し、Excelから読み込んだ値が順番にテキストボックスにセットされます。なお、Excelは起動しません。

取得値をWEBサイトにセットしたイメージ