IEのタグネームクリックと値を入力するマクロ
を示す。
IE(Internet Explorer)をひらいて接続待機。
HTMLのinputタグ部分を使って
値を入力したり、ボタンをクリックするマクロ。
■Excel-VBA IEのタグネームクリックと値を入力するマクロ
Sub sample50() Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Visible = True ObjIE.navigate "http://〇〇" Call IEWait(ObjIE) Dim MR As Long Dim j As Long MR = Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To MR ObjIE.navigate "http://〇〇" Call IEWait(ObjIE) Dim objTag As Object For Each objTag In ObjIE.Document.getElementsByTagName("input") If InStr(objTag.outerHTML, "Input_PN") > 0 Then objTag.Value = Cells(j, 1) Call IEWait(ObjIE) Exit For End If Next For Each objTag In ObjIE.Document.getElementsByTagName("input") If InStr(objTag.outerHTML, "Input_HM") > 0 Then objTag.Value = Cells(j, 2) Call IEWait(ObjIE) Exit For End If Next For Each objTag In ObjIE.Document.getElementsByTagName("input") If InStr(objTag.outerHTML, "Button_F1") > 0 Then objTag.Click Call IEWait(ObjIE) Exit For End If Next For Each objTag In ObjIE.Document.getElementsByTagName("input") If InStr(objTag.outerHTML, "Button_F2") > 0 Then objTag.Click Call IEWait(ObjIE) Exit For End If Next Next j End Sub Function IEWait(ByRef ObjIE As Object) Do While ObjIE.Busy = True Or ObjIE.readyState <> 4 DoEvents Loop End Function※[3.] 変数宣言。
※[4.] IEをオブジェクトにセット。
※[5.] IEを可視化。
※[6.] IEを任意のURLに接続。
※[7.] Webページ読み込み待機マクロ呼び出し。
※[9.~10.] 変数宣言。
※[11.] 最終行数取得。
※[13.] 最終行までループ処理。
※[15.] IEを任意のURLに接続。
※[16.] Webページ読み込み待機マクロ呼び出し。
※[17.] 変数宣言。
※[19.~25.] HTMLのinputタグ名「Input_PN」に
j行1列目のセルの値を入力する。
※[27.~33.] HTMLのinputタグ名「Input_HM」に
j行2列目のセルの値を入力する。
※[35.~41.] HTMLのinputタグ名「Button_F1」を
クリックする。
※[43.~49.] HTMLのinputタグ名「Button_F2」を
クリックする。
※[51.] 次の行に処理をうつる。
※[55.~59.] Webページ読み込み待機マクロ。j行1列目のセルの値を入力する。
※[27.~33.] HTMLのinputタグ名「Input_HM」に
j行2列目のセルの値を入力する。
※[35.~41.] HTMLのinputタグ名「Button_F1」を
クリックする。
※[43.~49.] HTMLのinputタグ名「Button_F2」を
クリックする。
※[51.] 次の行に処理をうつる。
■マクロ実行対象
■ワークブック「Book.xlsx」■IEで表示されたWebページ。社内システムなど。
例えば、
Webページ上で右クリック
⇒「ページのソースを表示」で
HTMLソースが表示される。
そのうちinputタグでつくられた
ボックスに値を入力したり、
ボタンをクリックしている。
【inputタグ例】
<input name="InputPN〇〇" type="text" id="InputPN〇〇" 〇〇/>
<input name="InputHM〇〇" type="text" id="InputHM〇〇" 〇〇/>
<input type="hidden" name="Button_F1〇〇" id="Button_F1〇〇" 〇〇/>
<input type="hidden" name="Button_F2〇〇" id="Button_F2〇〇" 〇〇/>
処理を実行したい箇所は
HTMLソース表示状態で「Ctrl+F」キーをおして
検索して探す。
■マクロ実行結果
実行すると、Webページにエクセルのセル値を入力、ボタンをクリックして自動処理する。
■あとがき
今回はExcel VBAマクロ。IEのタグネームクリックと値を入力するマクロ
を示した。
値入力やクリックなどIEを自動制御
したい場合に使う。
IE制御はinputタグ以外にもいろいろ方法がある。
HTMLソースをみて、
inputタグが使えなさそうな場合は別の方法を
ググったりして検討する必要がある。
LibreOfficeBasicではエラーが出て使えなかった。
以上。