【VBA】インプットボックスの操作(InternetExplorer)

インプットボックス

最近、40歳になったjimです。どうも✋

今回は『インプットボックスの操作』について記事を書いていきます。

本当は、【VBA】Webのテーブルデータ取得(InternetExplorer)でも書いたように、IEの操作を自動化したくないのですが。。。

しないといけないこともあって。。。

おそらく次の派遣先でも自動化するだろうし。。。

ってことで・・・

↓これがインプットボックス

↓HTMLだと

ちなみに・・・

↓テキストボックス

↓HTML

どっちの操作も一緒っす。

 

コードを書き散らす

わかりやすいように今回もIDを振ってあるので、インプットボックスをIDで指定してやります。

idが無い場合は、前回のtdように『何個目のinput』みたいな指定をしないと駄目っすね。

IEの操作は面倒。。。

はい、下に取得と入力について書いてあります。

参照設定してないと動かないので注意。

Option Explicit
Sub inputbox()
Const gakeUrl = "https://bw-rocket.com/2021/09/03/post-2780/"
Dim objIe As InternetExplorer
    If GetWindow(objIe) = False Then
        Set objIe = CreateObject("InternetExplorer.Application")
        objIe.Visible = True
        objIe.navigate gakeUrl
        Call WaitLoad(objIe)
    End If
    '取得
    Debug.Print objIe.document.getElementById("gakeid").Value
    Debug.Print objIe.document.getElementsByName("gakename")(0).Value
    '入力(前)
    objIe.document.getElementById("gakeid").Value = "天才" & objIe.document.getElementById("gakeid").Value
    '入力(後)
    objIe.document.getElementById("gakeid").Value = objIe.document.getElementById("gakeid").Value & "天才"
    '入力(上書き)
    objIe.document.getElementById("gakeid").Value = "天才"
End Sub
Private Sub WaitLoad(ByVal objIe As InternetExplorer)
    Do While objIe.Busy = True Or objIe.readyState <> 4
        DoEvents
    Loop
End Sub
Function GetWindow(ByRef objIe As InternetExplorer)
Const gakeTitle = "【VBA】テキストボックスの操作(InternetExplorer) | 崖っぷち派遣社員の日常"
Dim shellObject As Object
Dim windowObject As Object
    Set shellObject = CreateObject("Shell.Application")
    For Each windowObject In shellObject.Windows
        If windowObject = "Internet Explorer" Then
            If windowObject.document.Title = gakeTitle Then
                Set objIe = windowObject
                GetWindow = True
                Exit For
            End If
        End If
    Next
End Function

 

そゆ感じ。ではまた✋