PR
ファイルの操作

【Excel VBA】URL指定でPDFファイルをダウンロードする

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

コメント