![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・インターネットから
・ファイルをダウンロード
できます!
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
ダウンロードは
・Windows APIによって実現
できます!
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
Windows APIの1つである
・URLDownloadToFile関数
を使用します!
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
実行結果
インターネットからファイルをダウンロードできました。
![ダウンロードの結果](https://excel-vba.work/wp-content/uploads/2021/11/vba_filedownload_001.png)
![ダウンロードされたファイル](https://excel-vba.work/wp-content/uploads/2021/11/vba_filedownload_002.png)
参考①
VBAでZIPファイルを解凍(展開)することもできます。
詳細は以下の記事をご確認ください。
参考②
郵便局の郵便番号データのページです。
参考③
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●Windows API「URLDownloadToFile関数」
参考④
バッチファイルでも、インターネットからファイルをダウンロードできます。
詳細は以下の記事をご確認ください。