WebBrowserで指定した名前のTextBoxが存在するか調べるには?

解決


がじゅまる  2004-08-20 12:45:12  No: 85179  IP: [192.*.*.*]

WebBrowserで、ある特定の名前のTextBoxが存在するかどうかの判定をしたいのですが、どうすればよいのでしょうか?

たとえば、mailという名前のTextBoxが存在するか調べたいのですが

編集 削除
りっとっと  2004-08-20 13:18:53  No: 85180  IP: [192.*.*.*]

Microsoft HTML Object Library を参照設定して、
WebBrowserのDocumentCompleteイベントなどで

Dim HTMLDoc As HTMLDocument
Dim Elms as Object 
Dim Elm As Object
Set HTMLDoc = WebBrowser1.Document
Set Elms = HTMLDoc.ElementsByName("mail")

とすれば、mailという名前のエレメント(テキストボックスとは限らない)
が取得できます。
もし、存在しない場合は、このElmsのLengthプロパティが0となりますので
この値で存在するかどうかがわかります。
また、テキストボックス限定で調べたいのでしたら
Set Elms = HTMLDoc.ElementsByTagName("Input")
とすれば、ElmsにInputタグを使用したエレメントすべてが配列として
取得できますので、
    For cnt = 0 To Elms.length - 1
        If Elms(cnt).Name = "mail" Then
            Exit For
        End If
    Next
    If cnt = Elms.length Then
        MsgBox "なし"
    Else
        MsgBox "あり"
    End If
といった感じで調べられます。

編集 削除
がじゅまる  2004-08-20 15:08:54  No: 85181  IP: [192.*.*.*]

丁寧に解説していただき、ありがとうございました

編集 削除