Excel-VBA IEのタグネームクリックと値を入力するマクロ

2019/12/31

プログラム

t f B! P L
Excel VBAマクロ。今回は
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ページ読み込み待機マクロ。

■マクロ実行対象

■ワークブック「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ではエラーが出て使えなかった。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ