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

VBAでソースに書いてある全てのURLを取得したいのですが、現状では一部しか取得できません。
文字数制限にでも引っかかっているのでしょうか?
どうすれば全てのURLを取得できるのか・・添削して頂けると or ヒントを教えて頂けると助かります。
よろしくお願いします。
(Excel2003を使用)

Sub test()
Dim objIE As Object
Dim objTAG As Object
Dim source As String
Dim url As String
Dim url_start As String
Dim url_end As String
Dim y As Long
url_end = 1
y = 1

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = False
objIE.Navigate "http://dir.yahoo.co.jp/"

Do While objIE.Busy = True
DoEvents
Loop

Application.Wait Time:=Now + TimeValue("00:00:03")
source = objIE.Document.All(1).Innerhtml
Do While y < 10000
url_start = InStr(url_end, source, "<a href=", vbTextCompare)
If url_start = 0 Then
y = 10000
Else
url_end = InStr(url_start, source, ">", vbTextCompare)
url = Mid(source, url_start + 9, url_end - url_start - 10)
Cells(y, 1).Value = url
y = y + 1
End If
Loop
End Sub

A 回答 (2件)

この回答への補足

http://dir.yahoo.co.jp/に記載されている全てのURLが出力されれば正解です。
よろしくお願いします。

補足日時:2009/03/18 01:18
    • good
    • 0

> objIE.Document.All(1).Innerhtml


ではなく aタグのみを列挙して、ちゃんと属性を取得したほうが確実ではないでしょうか?

documentのlinksコレクションからanchorオブジェクトを取得し、hrefプロパティの値を取得すればいいです。

参考
http://www.ken3.org/backno/backno_vba15.html#71
    • good
    • 0
この回答へのお礼

素晴らしい・・・
完璧でした。

ありがとうございました。

お礼日時:2009/03/18 09:53

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