【VBA】画像URL一覧からPCフォルダに画像をダウンロードする
2017/02/26
コード内容
先にコードから紹介します。
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 'APIの宣言 Sub 画像DL() Dim url As String Dim file名固定部 As String Dim file名可変部 As String Dim file As String Dim i As Long file名固定部 = "C:\Users\owner\Documents\VBA画像ダウンロードフォルダ\" i = 1 Do file名可変部 = Cells(i, 1).Value file名可変部 = Replace(file名可変部, "http://", "") file名可変部 = Replace(file名可変部, "/", "") file名可変部 = Replace(file名可変部, ":", "") file名可変部 = Replace(file名可変部, "*", "") file名可変部 = Replace(file名可変部, "?", "") file名可変部 = Replace(file名可変部, ".", "") file名可変部 = Replace(file名可変部, " ", "") file名可変部 = file名可変部 & "_1" & ".jpg" url = Cells(i, 1).Value 'DLする画像のURL file = file名固定部 & file名可変部 'ダウンロード先のフルパス URLDownloadToFile 0, url, file, 0, 0 'ダウンロード i = i + 1 Loop Until Cells(i, 1).Value = "" MsgBox "画像DL完了" End Sub
コードの説明
最初の呪文(API宣言)は気にしたら負けです。このまま入れておいてください。
画像URL一覧は先にIEクローリングかなんかで取得しておいて、それをA列に並べます。
file名固定部はダウンロード先のフォルダパスをおのおの変えておいてください。
file名可変部のところは不要なところだったり見にくいところだったりを修正するために入れました。これもおのおのの好みに合わせていじってください。
参照設定
デフォルトのままで大丈夫。
・Visual Basic For Applications
・Microsoft Excel 15.0 Object Library
・OLE Automation
・Microsoft Office 15.0 Object Library
4つにチェック入れとけばOK。
VBAのIE操作を覚えるのに一番良いと思う本(ぼくはこれで覚えました)
近田 伸矢,植木 悠二,上田 寛 インプレス 2013-04-19