ぼくらの研究

ぼくらのための研究をしていきます。

【VBA】画像URL一覧からPCフォルダに画像をダウンロードする

      2017/02/26

VBA

 

コード内容

先にコードから紹介します。


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列に並べます。

VBA画像DL

file名固定部はダウンロード先のフォルダパスをおのおの変えておいてください。

file名可変部のところは不要なところだったり見にくいところだったりを修正するために入れました。これもおのおのの好みに合わせていじってください。

 

参照設定

デフォルトのままで大丈夫。

・Visual Basic For Applications
・Microsoft Excel 15.0 Object Library
・OLE Automation
・Microsoft Office 15.0 Object Library

4つにチェック入れとけばOK。

VBAのIE操作を覚えるのに一番良いと思う本(ぼくはこれで覚えました)