【VBA】インターネットからファイルをダウンロードする

VBAで
 ・インターネットから
 ・ファイルをダウンロード
できます!

ダウンロードは
 ・Windows APIによって実現
できます!

Windows APIの1つである
 ・URLDownloadToFile関数
を使用します!

PR

VBAコード

ここでは例として
 ・郵便局のサイトから
 ・郵便番号データ(全国一括)のzipファイルをダウンロードして
 ・デスクトップ配下に保存
します。

Option Explicit
'Windows APIの宣言
Private Declare PtrSafe 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

Sub sample()
    
    Dim url As String
    Dim filePath As String
    Dim result As Long
    
    'ダウンロードするファイルのURLを指定
    url = "https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip"
    '保存するファイルパスを指定
    filePath = "C:\Users\user\Desktop\ken_all.zip"
    
    'ダウンロードを実行
    result = URLDownloadToFile(0, url, filePath, 0, 0)
    
    If result = 0 Then
        MsgBox "ダウンロードできました!"
    Else
        MsgBox "ダウンロードできませんでした!"
    End If
    
End Sub

Windows APIの「URLDownloadToFile関数」を宣言(=記述)します(3~9行目)。
※「URLDownloadToFile関数」を使用できるようにするためのお約束の記述です。
※内容を把握する必要はありません。ただ記述するだけでよいです。

ダウンロードするファイルのURLを指定します(18行目)。
※状況に応じて変更してください。
※上記では「https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip」と指定しています。

保存するファイルパスを指定します(20行目)。
※状況に応じて変更してください
※上記では「C:\Users\user\Desktop\ken_all.zip」と指定しています。

「URLDownloadToFile関数」を使用して、ダウンロードを実行しています(23行目)。
※引数として以下を指定します。
 第1引数:0
 第2引数:ダウンロードするファイルのURL
 第3引数:保存するファイルパス
 第4引数:0
 第5引数:0

ダウンロードの結果を判定しています(25~29行目)。

PR

実行結果

インターネットからファイルをダウンロードできました。

ダウンロードの結果
ダウンロードの結果
ダウンロードされたファイル
ダウンロードされたファイル
PR

参考①

VBAでZIPファイルを解凍(展開)することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

郵便局の郵便番号データのページです。

タイトルとURLをコピーしました