Webフォームに順番に入力する 質問回答用【Selenium Basic × ExcelVBA】
お題 SeleniumBasicでChromeを操作しB列・C列のデータを順番にWebフォームに入力
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
※ForEachで行いたい場合
Option Explicit
Public Sub Sample()
'ChromeDriverを使用できる為の準備
Dim driver As New Selenium.ChromeDriver
'配列を定義
Dim 配列() As Variant
'変数を用意
Dim cnt As Integer
With driver
'指定したページへ
.Get "https://vba.company/1016/"
Option Explicit
Public Sub Sample()
'ChromeDriverを使用できる為の準備
Dim driver As New Selenium.ChromeDriver
'セルを定義
Dim セル As Range
With driver
'指定したページへ
.Get "https://vba.company/1016/"
'指定したセル範囲を順番に繰り返す
Rem For Each セル In Sheet1.Range("B9", "B26")
'範囲が変わるかもしれない場合は最終行までの範囲にした方がベター
For Each セル In Sheet1.Range("B9", Range("B9").End(xlDown))
'対象のセル
.FindElementById("clientcode").SendKeys セル.Value
'1個隣のセル
.FindElementById("clientname").SendKeys セル.Offset(0, 1).Value
'更新ボタンをクリック
.FindElementById("clientclick").Click
Next
End With
End Sub
'セル範囲を配列に入れる
配列 = Sheet1.Range("B9", "C26").Value
For cnt = LBound(配列, 1) To UBound(配列, 1)
'対象のセル
.FindElementById("clientcode").SendKeys 配列(cnt, 1)
'1個隣のセル
.FindElementById("clientname").SendKeys 配列(cnt, 2)
'更新ボタンをクリック
.FindElementById("clientclick").Click
Next
End With
End Sub
※配列で対応する場合
Option Explicit
Public Sub Sample()
'ChromeDriverを使用できる為の準備
Dim driver As New Selenium.ChromeDriver
'配列を定義
Dim 配列() As Variant
'変数を用意
Dim cnt As Integer
With driver
'指定したページへ
.Get "https://vba.company/1016/"
'セル範囲を配列に入れる
配列 = Sheet1.Range("B9", "C26").Value
For cnt = LBound(配列, 1) To UBound(配列, 1)
'対象のセル
.FindElementById("clientcode").SendKeys 配列(cnt, 1)
'1個隣のセル
.FindElementById("clientname").SendKeys 配列(cnt, 2)
'更新ボタンをクリック
.FindElementById("clientclick").Click