本記事では「VBAでネット上のファイルをダウンロードする方法」を紹介します。
意外と簡単にVBAを使ってネット上のファイルをダウンロードできるので、ぜひ活用してみてください。
注意サイトによってはスクレイピング(自動取得)を禁止しているところもあります。
なので、対象サイトはしっかり調査したうえで利用してみてください。
VBAでファイルをダウンロードする方法(URLDownloadToFile関数)
下のコードを記述すれば、特定のURLのファイルをダウンロードすることができます。
下のコードであなたが書き換える箇所は「ダウンロードしたいファイルのURL(14行目)」と「ファイルを保存する場所(15行目)」のみです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 Download_File() Dim lngRes As Long Dim strURL As String Dim strPath As String strURL = "https://" '---ダウンロードしたいファイルのURL strPath = "C:\" '---ダウンロードしたファイルを保存する場所+ファイル名 lngRes = URLDownloadToFile(0, strURL, strPath, 0, 0) If lngRes = 0 Then MsgBox "ダウンロードが正常に終わりました" Else MsgBox "エラーが発生しました" End If End Sub |
上のコードでは『urlmon』というライブラリファイルに用意されている『URLDownloadToFileA』という関数を利用しています。
この関数は”WindowsAPI”でして、Windowsで行う処理をプログラム上で実行するために用意されている機能の1つになります。
この関数は使うだけであれば、そこまで詳しくこの関数について深堀する必要はないので、ここまでの内容程度の理解でいいかと思います。
では、上のコードであなたが設定すべき箇所の説明をしていきます。
ダウンロードしたいファイルのURL(14行目)
まずはダウンロードをしたいファイルのあるURLの指定からです。
例えば、下のしょうもない画像をダウンロードするとします。
画像の場合は大抵、「画像を右クリック → 画像アドレスをコピー」で画像のURLが分かったりします。
上の画像の場合は「https://bokulog.org/wp-content/uploads/2020/12/sample.png」となります。
また、PDFファイルなんかはブラウザーで実際に開いたURLがファイルのURLになります。
この方法で取得したURLを上のコードの14行目の「”(ダブルコーテーション)」の間にコピペすれば良いです。
”ファイルを保存する場所”+”ファイル名”の指定(15行目)
次に「”ファイルを保存する場所”+”ファイル名”の指定」です。
まずはダウンロードしたファイルを保存する予定のディレクトリーの調べ方になります。
【保存予定の場所のディレクトリーの調べ方】
1.保存したい場所を開き、右クリック
2.”プロパティ”を選択
3.”場所”欄をコピー
上の保存場所に加えて、保存するときの”ファイル名”を指定します。
上のディレクトリーの場合は「C:\Users\username\Desktop\新しいフォルダー\1234.png」となります。※1234.png部分がファイル名。
コレで「デスクトップの新しいフォルダーの中に1234.pngというファイルが置かれる」ことになります。
この保存場所のディレクトリーを15行目に記述すればOKです。
スポンサーリンク
コメント