本記事では「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です。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク