アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NET(VB 2010 Express)でIE9をWebBrowserコントロールではなく直接操作しています。

先にここで、あるサイトのトップページを表示し、それにユーザID、パスワードを入力し、ログオンボタンをクリックして次のページを別タブで表示する方法を教えて頂きました。

そこで、別タブに表示した次ページのHTMLソースを取得する方法として、下記のコードを教えて頂きました。

Dim objIE As Object

objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate("http://login.yahoo.co.jp/")
Do While objIE.Busy
System.Threading.Thread.Sleep(500)
Loop
objIE.Document.login_form.login.Value = "xxxxx" 'ユーザIDを入力
objIE.Document.login_form.passwd.Value = "yyyyy" 'パスワードを入力
objIE.Document.login_form.target = "_blank" '別ページに表示
objIE.Document.login_form.submit()

Dim Shell As Object
Dim win As Object
Dim newObjIE As Object

Shell = CreateObject("Shell.Application")

For Each win In Shell.Windows
If TypeName(win.document) = "HTMLDocument" Then 'このif文がTrueにならない
If win.document.URL = "http://yahoo.co.jp" Then
newObjIE = win
Exit For
End If
End If
Next

しかし、コメントのあるif文がTrueにならないようです。修正方法を教えて頂きたくよろしくお願い致します。

A 回答 (1件)

>If TypeName(win.document) = "HTMLDocument" Then



win.document の型が "HTMLDocument" と違うという事は理解されているのだから
Debug.Print(TypeName(win.document)) のようにしてどの型なのかを見て見れば
解りませんか?
"HTMLDocument" は、VB6.0 のコードの場合の型で、VB2010 の場合は、同じとは限りませんよ。
Dim win As Object のような遅延バインディング にしなかったら気が付くのが早かったのですが。
    • good
    • 0
この回答へのお礼

早速回答頂きありがとうございました。助かりました。

お礼日時:2012/09/03 10:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!