VBAから、適切なユーザー名を入力できるように、Webページから「ユーザー名」セルにアクセスしようとしています。VBAからのHTMLページからの情報の取得
問題は、ページのHTMLコードに "LOGON_USERID"という名前の複数の要素があり、正しい方法にアクセスする方法がわかりません。
画像の「HTMLコードの一部」からわかるように、私がアクセスしようとしている行は強調表示されていますが、その上に同じ名前の2つの要素があります。
私は(別のメソッドや変数の型などを使用して)さまざまな方法の多くを試してみましたが、私はHTMLに慣れていないよので、私は私が欲しいものを得るために管理することはできません。
Sub Pum()
Dim ie As New InternetExplorer
'Dim IEDoc As IHTMLElementCollection
Dim IEDoc As HTMLDocument
Dim name As Object
Dim nameList As HTMLInputElement
Dim WRONGS As DispHTMLElementCollection
Dim Elems As HTMLElementCollection
Dim i As Integer
ie.navigate "thewebsiteinquestion"
ie.Visible = False
WaitIE ie
Set IEDoc = ie.document
'MsgBox IEDoc.DocumentElement.
'Elems = IEDoc.getElementsByTagName("INPUT")
MsgBox TypeName(IEDoc.getElementById("LOGON_USERID").all)
Set Elems = IEDoc.getElementById("LOGON_USERID")
'For i = 0 To 5
MsgBox Elems.Length
'Next i
For Each name In Elems.Children
MsgBox name.nodeName
MsgBox name.Attributes
MsgBox name.all
Next
'If ((NameStr Isnot Nothing And (NameStr.Length <> 0)) Then
'If NameStr = "LOGON_USERID" Then
'If TypeName(IEDoc.all("LOGON_USERID")) = "HTMLInputElement" Then
'MsgBox TypeName(IEDoc.all("LOGON_USERID"))
'Set names = IEDoc.all.Item("text")
'TypeName (InputUsernameTextzone)
'Dim Question As IHTMLElement
'Question = InputUsernameTextzone.parentElement
'MsgBox TypeName(InputUsernameTextzone.parentElement.getAttribute("name"))
'InputUsernameTextzone.parentElement
'CELLULE.value = "qtc2464"
WaitIE ie
Set ie = Nothing
Set IEDoc = Nothing
End Sub
私は別の方法を使って2つの同様のコードを試しましたが、まだ結果はありません。うまくいけばあなたは私を助けることができる。
詳細が必要な場合はお知らせください。
の自動化が難しいビジネスすることができます。特にあなたがウェブサイトを所有していない場合。ウェブサイトが更新されるたびに、あなたのコードは失敗する危険があります。代わりに使用できるAPIをウェブサイトで公開していますか? –
@ destination-data:基本的にこれは私が働いている会社のウェブページです。私の考えは、更新を自動的に行うことができるように、マクロを使って直接データにアクセスすることでした。このページで提供する必要があるのは、ユーザー名とパスワードのみです。私はAPiという用語に精通していませんが、その意味を捜した後、私は使用できるものはないと思います。 – Seb