タイトル : Re: IEの自動ログイン 投稿日 : 2015/04/10(Fri) 16:25 投稿者 : はなまるき
補足です Public Sub IEInputTextbox(ByRef objIE As Object, str As String, Value As String) ’str="pass"です On Error Resume Next Dim objInput As Object Dim str1 As String For Each objInput In objIE.document.getElementsByTagName("Input") If InStr(1, objInput.outerHTML, str, vbTextCompare) <> 0 Then objInput.Value = Value Exit For End If Next End Sub InputタグのouterHTML :objInput.outerHTML <input name="pass" class="inputText login" type="password"> 検索要素str :"pass" において次のような実験をしてみました。 @上記のまま InStr(1, objInput.outerHTML, str, vbTextCompare) 戻り値:0 A明示的に値を入れなおす str="pass" InStr(1, objInput.outerHTML, str, vbTextCompare) 戻り値:>0 B変数に変数を入れてみる Dim str1 as string str1=str InStr(1, objInput.outerHTML, str1, vbTextCompare) 戻り値:=0 タだしところが、strに”inputText login”を渡す場合は戻り値は>0となります。 元々strにはstring型の変数を渡しています。 dim objIE as object dim rs as adodb.recordset dim str as string dim v as string set objIE=OpenIE()・・・省略 set rs=Createreocordset(strSQL)・・・省略 str=rs.fields("PasswordElement") v=rs.fields("Value") ret=IEInputTextbox(objIE,str,v) |