質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

849閲覧

エクセルVBA IE 画像取得。指定のタグの中の画像のみをダウンロードしたい

pythonbegginer

総合スコア25

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/07/14 02:40

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

参考にしたサイトはこちらです。

どうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問