【VBA】WebページのファイルをXMLHTTPRequestを使用してダウンロードする方法

10月 29, 2022

VBAでWebページのファイルをダウンロードしたい人向けに書いています。

本記事の内容

・WebページのファイルをXMLHTTPRequestを使用してダウンロードする方法

VBA(マクロ)で自動的にWebページのファイルをダウンロードしたいと思っていませんか?
Webページのファイルをダウンロードする方法を紹介します。

 

WebページのファイルをXMLHTTPRequestを使用してダウンロードする方法

以下がWebページのファイルをXMLHTTPRequestを使用してダウンロードするプログラムです。

  1. '*****************************************
  2. '* Webページファイルダウンロード XMLHTTPRequest
  3. '*****************************************
  4. Public Sub WEB_PAGE_FILE_DL()
  5.     
  6.     'ダウンロード(引数1:URLファイルアドレス,引数2:保存先ファイルパス)
  7.     DownloadFile "https://msedgedriver.azureedge.net/102.0.1245.44/edgedriver_win64.zip", _
  8.                 "D:\Webページ保存ファイル\edgedriver_win64.zip"
  9.     
  10.     MsgBox "処理が完了しました。", vbInformation + vbSystemModal
  11.     
  12. End Sub
  13.   
  14. Private Sub DownloadFile(ByVal Url As String, ByVal SaveFilePath As String)
  15.     
  16.     Dim req As Object
  17.     Const adTypeBinary = 1
  18.     Const adSaveCreateOverWrite = 2
  19.     
  20.     'XMLHTTPRequest
  21.     Set req = CreateObject("Msxml2.XMLHTTP")
  22.     req.Open "GET", Url, False
  23.     
  24.     'キャッシュ対策
  25.     req.setRequestHeader "Pragma", "no-cache"
  26.     req.setRequestHeader "Cache-Control", "no-cache"
  27.     req.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
  28.     
  29.     req.Send
  30.     Select Case req.Status
  31.         Case 200
  32.             'ADODB.Streamファイルダウンロード
  33.             With CreateObject("ADODB.Stream")
  34.             .Type = adTypeBinary
  35.             .Open
  36.             .Write req.responseBody
  37.             .SaveToFile SaveFilePath, adSaveCreateOverWrite
  38.             .Close
  39.         End With
  40.         Case Else
  41.             MsgBox "エラーが発生しました。" & vbCrLf & _
  42.                 "ステータスコード:" & req.Status, _
  43.                 vbCritical + vbSystemModal
  44.         Exit Sub
  45.     End Select
  46.     
  47. End Sub


7行目:URLファイルアドレスを設定
8行目:保存先ファイルパスを設定

本プログラムではMicrosoft EdgeのWebドライバーをダウンロードするプログラムにしています。
WebページファイルのURLアドレスはWebページのダウンロードリンクを右クリックし、「リンクアドレスのコピー」をクリックして取得しています。

 

 

まとめ

WebページのファイルをXMLHTTPRequestを使用してダウンロードする方法を紹介しました。
最後までご覧いただき、ありがとうございました。

 

【ExcelVBA】HTTP/HTTPS通信によるWebページ情報取得の方法」も紹介していますので、もしよろしければこちらも御覧ください。

 

¥891 (2023/02/02 12:04時点 | Amazon調べ)
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)