VBA詳しい方どうか教えて頂けると嬉しいです。
★やりたいこととして、指定URLの画像を取得したいのですが全部ではなく一部だけやりたいのですがやり方がわかりません(>_<)
例として、ホットペッパーのこのお店の全部の写真ではなく、添付画像の写真のみ(画像は何枚かあります)をダウンロードしてみてるのですが、全写真がダウンロードされてしまいます。店舗はランダムです。こちら
ネットで検索したコードを使用しているのですが、たぶんここを変えないといけないのかな。。とは思うのですが、、どうしたらいいか全くわからずで教えてほしいです。。
' IE ページ内 全imgタグ
For Each img In .document.getElementsByTagName("img")
全コードは以下です。
VBA
1Option Explicit 2 3Sub main() 4 5' 6' WS 設定値 7' 8Dim save_path As String 9Dim get_url As String 10Dim size_min As String 11Dim size_max As String 12 13' WS 設定取得 14With ActiveSheet 15get_url = .Range("B5").Value 16save_path = .Range("B8").Value 17size_min = .Range("B11").Value 18size_max = .Range("F11").Value 19End With 20 21' WS 設定確認 22If "" = Trim(get_url) Then 23MsgBox ("画像を取得するページURLを入力してください。") 24Exit Sub 25End If 26If "" = Trim(save_path) Then 27save_path = ThisWorkbook.Path 28End If 29If "\" <> Right(save_path, 1) Then 30save_path = save_path & "\" 31End If 32If "" = Trim(size_min) Then 33size_min = 0 34End If 35If "" = Trim(size_max) Then 36size_max = 999999999 37End If 38If Dir(save_path, vbDirectory) = "" Then 39' 保存先フォルダがない 40MsgBox ("保存先のフォルダがありません。") 41Exit Sub 42End If 43 44 45' 46' 処理開始 47' 48Dim ie As InternetExplorer 49Dim img As HTMLImg 50Dim src As String 51Dim ary1, ary2 52Dim name As String 53Dim ret As Long 54 55Dim count_saccess As Long 56count_saccess = 0 57Dim error_saccess As Long 58error_saccess = 0 59 60' IE 生成 61Set ie = CreateObject("InternetExplorer.Application") 62With ie 63' IE 可視化 64.Visible = True 65' IE 取得用URL 66.navigate get_url 67 68' IE ページ表示待機 69Sleep 1000 70Do 71Sleep 300 72DoEvents 73Loop Until (Not .Busy) And (.readyState = 4) 74Sleep 1000 75 76' IE ページ内 全imgタグ 77For Each img In .document.getElementsByTagName("img") 78' IMG 画像URL 79src = img.src 80' IMG パラメーター削除 81ary1 = Split(src, "?") 82' IMG ファイル名取得 83ary2 = Split(ary1(0), "/") 84name = ary2(UBound(ary2)) 85' IMG 拡張子なしは 強制jpg 86If Not 0 < InStr(name, ".") Then 87name = name & ".jpg" 88End If 89 90' Debug.Print img.Height 91' Debug.Print img.Width 92' Debug.Print name 93 94' IMG 指定サイズで絞込み 95If size_min < img.Height And size_min < img.Width And _ 96size_max > img.Height And size_max > img.Width Then 97 98' IMG 画像ダウンロード 99ret = URLDownloadToFile(0, src, save_path & name, 0, 0) 100If ret = 0 Then 101' ダウンロード成功 102count_saccess = count_saccess + 1 103Else 104' ダウンロード失敗 105error_saccess = error_saccess + 1 106End If 107 108End If 109Next img 110 111.Quit 112End With 113Set ie = Nothing 114 115 116' ダウンロード 結果表示 117MsgBox ("ダウンロード数 : " & count_saccess & vbCrLf & "エラー数 : " & error_saccess) 118 119End Sub 120
参考にしたサイトはこちらです。
どうかよろしくお願いいたします。
あなたの回答
tips
プレビュー