URLやファイルパスの情報を元にPDFファイルをダウンロードするコードを紹介します。
サーバー等に格納されているPDFファイルを一括でダウンロードする場合に使用します。
ファイル名に規則性(日付)がある場合、Excel上に計算式を追加する等で応用できます。
今回の事例紹介は、Excel上で選択しているセル(範囲指定可能)に対して、セルに記載されているURLからPDFファイルをダウンロードするコードです。
Sub PDFファイルをURL、パス指定でダウンロードする()
Dim cell As Range
Dim HTTP As Object
Dim PATH As String
Dim FILE_name As String
'マクロ実行時に選択しているセルがマクロ処理対象
For Each cell In Selection
'セルの値(URLやファイルパス)を取得
PATH = cell.Value
'XMLHTTPオブジェクトを作成
Set HTTP = CreateObject("MSXML2.XMLHTTP")
'セルの値(URLやファイルパス)の最後の"/"以降をファイル名とする
'※"C:\"にtestフォルダを事前に準備しておく
FILE_name = "C:\test\" & Right(PATH, Len(PATH) - InStrRev(PATH, "/"))
'ファイルをダウンロードする
HTTP.Open "GET", PATH, False
HTTP.send
'ファイルを保存する
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1
stream.Write HTTP.responseBody
stream.SaveToFile FILE_name, 2
stream.Close
Next cell
End Sub
コメント