みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel VBAでブラウザのリンクをクリックするには

Excelのバージョンは2003です。
VBAで出発地から到着地からNavitimeのサイトに接続して距離を取得するようなプログラムを作成していますが…

下記のように記述しています。
Private Sub Workbook_Open()
Dim ie As InternetExplorer
Dim addr0 As String
Dim addr1 As String

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True

addr0 = "住所1"
addr1 = "住所2"

ie.navigate "http://www.navitime.co.jp/?keyword0=" & urlEncode(addr0) & _
"&keyword1=" & urlEncode(addr1) & _
"&ctl=0604"

Do While ie.Busy = True
Do While ie.readyState <> 4
DoEvents
Loop
Loop
End Sub

Public Function urlEncode(str As String) As String
Set sc = CreateObject("ScriptControl")
sc.Language = "Jscript"
Set js = sc.CodeObject
urlEncode = js.encodeURIComponent(str)
End Function

リンクをクリックするにはどのようにすればいいのでしょうか。
アドバイス宜しくお願いします。

投稿日時 - 2009-11-23 23:43:41

QNo.5471188

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

ieのDocumentからクリックしたいHtmlエレメントオブジェクトを探し出してclick。

探し方はいろいろありますが、HTMLソースによって異なります。

リンクしたいエレメントにidやnameがあれば、getElementById/getElementsByName
ハイパーリンクならie.document.linksをFor EachでまわしてhrefやinnerTextで判断。
フォームなら、ie.document.forms(番号またはフォームのid/name).submit

この手の質問は過去ログにたくさんあるので、具体的なコードは検索してみてください。


下記コードは参考程度に

参照設定:Microsoft Internet Controls, Microsoft HTML Object Library

Dim doc As HTMLDocument
Dim link As HTMLAnchorElement

Set doc = ie.Document

For Each link In doc.Links
Debug.Print link.innerText & " :URL = " & link.href
Next

投稿日時 - 2009-11-24 00:02:02

お礼

回答ありがとうございます。
せっかくアドバイスいただいたんですが・・・
プログラム自体、全て白紙になりました。
申し訳ありません。

投稿日時 - 2009-11-25 10:34:22

あなたにオススメの質問