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
No.1
- 回答日時:
こんばんは
当方もExcel2003で実行してみました
https://login.yahoo.co.jp/config/login?.src=dir& …
http://www.yahoo.co.jp/
http://bb.yahoo.co.jp/
http://my.yahoo.co.jp/
http://help.yahoo.co.jp/help/jp/dir/
http://bookmarks.yahoo.co.jp/action/bookmark?t=" …
http://bookmarks.yahoo.co.jp/action/bookmark?t=Y …
http://bookmarks.yahoo.co.jp/url?url="+encodeURI …
http://bookmarks.yahoo.co.jp/url?url=http%3A%2F% …
http://ameblo.jp/mikako-ryoma/entry-10190485890. …
http://www.kentei-uketsuke.com/ryoma.html
http://dir.yahoo.co.jp/pg/mycategory/
が、吐き出されますが
どのように出力されれば正解なんですか
その辺教えてください
No.2ベストアンサー
- 回答日時:
> objIE.Document.All(1).Innerhtml
ではなく aタグのみを列挙して、ちゃんと属性を取得したほうが確実ではないでしょうか?
documentのlinksコレクションからanchorオブジェクトを取得し、hrefプロパティの値を取得すればいいです。
参考
http://www.ken3.org/backno/backno_vba15.html#71
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
ListView 項目の選択/選択解除...
-
getParameter と getAttribut...
-
count(*)で取得した値をJAVAの...
-
Flexgridで選択行の列の値を取...
-
「Excel VBA」 Webクエリ マク...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
データ数をカウントしたいのですが
-
javaで週の最初の日(例:月曜日...
-
PostgresSQL JDBC で Select結...
-
EXCELのリストボックスを選択し...
-
POSTやGETの値の取得方法
-
エクセルVBAで別ファイルのデー...
-
ASP(vbscript)におけるクライア...
-
現在時刻をミリ秒まで取得
-
コンボボックスの表示は最大何行?
-
asp.netでtextboxの値を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
ListView 項目の選択/選択解除...
-
like演算子内に変数って使えな...
-
count(*)で取得した値をJAVAの...
-
利用者側のMACアドレスを取得し...
-
データ数をカウントしたいのですが
-
JavaScriptでWindowsログオンID...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
VBA リストボックス複数選択か...
-
getParameter と getAttribut...
-
Excel VBA でログインしてい...
-
VBScriptで数値にコンマを付け...
-
Spreadの選択行の取得について
-
コンボボックスの表示は最大何行?
-
コンボボックス表示文字列を取...
-
VB .netにて現在時刻+1時間後...
おすすめ情報