0

HTML Webページに次のコードがあり、vbaエンジンを介してhtmlオブジェクトライブラリを使用して、このタグ内から値を取得しようとしています。

<input name="txtAdd_Line1" disabled="disabled" size="30" maxLength="50" value="123 N 1ST ST"/>

.getelementsbytagnameまたはを使用する必要.getelementsbynameがあると思いますが、値を取得する方法がわかりません。誰かアイデアはありますか?

4

2 に答える 2

1

コメント付きの例を次に示します。実際のアドレスに置き換えてください。

Sub Example()
    'Declare needed variables
    Dim ie, elements
    Dim x As Long
    'Create IE Applction
    Set ie = CreateObject("InternetExplorer.Application")
    'Navigate to the website
    ie.navigate "C:\test.html" 'Substitute your actual address
    'Wait for website to finish loading
    Do While ie.ReadyState <> 4
    Loop

    'Find the elements
    Set elements = ie.document.getelementsbyName("txtAdd_Line1")
    'Display the value of each returned element
    For x = 0 To elements.Length - 1
        MsgBox elements(x).Value
    Next
    'Quit IE
    ie.Quit
End Sub

あなたのコメントに基づいて、おそらくドキュメントを見ただけでは、必要なツリーの実際のレイヤーが取得されていませんでした。これを試してください。

Set HTMLDoc = ie.document.frames("MainFrame").document 
With HTMLDoc 
    'This returns an (object) which contains an array of all matching elements
    a = .getElementsByName("txtAdd_Line1")
end with
For x = 0 to a.length
    msgbox a(x).value
next
于 2012-10-01T16:43:18.777 に答える
0

のCSSセレクターを使用できますinput[name='txtAdd_Line1']。これは、値inputを持つ属性を持つタグを持つ要素を言います。name'txtAdd_Line1'

CSSセレクター:

CSSセレクター

たとえば、次の.querySelector方法を使用してCSSセレクターを適用します。document

Msgbox ie.document.querySelector("input[name='txtAdd_Line1']").innerText
于 2018-06-25T19:00:47.643 に答える