URLMON(URLMoniker)ライブラリのAPI関数、「URLDownloadToFile」を使用して、インターネット上の指定URLのファイルをダウンロードする方法を紹介します。ここでの”ファイル”とは、インターネットからダウンロード入手できるフリーソフトのようなものだけでなく、そのURLで表示されるHTMLファイルやそこで使われている画像ファイルなどもすべて含みます。
まず、標準モジュールに次のようなAPIの宣言を記述します。
Private Declare 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
次のサンプルプロシージャでは、当サイトより、LZHファイル、HTMLファイル、JPEGファイルをダウンロードしています。ダウンロード元URLを変更することで、さまざまなファイルをダウンロードできることが分かると思います。
Sub test()
Dim strURL As String
Dim strFileName As String
Dim lngRet As Long
'*************************************
' LZHファイルのダウンロード
'*************************************
'ダウンロード元のURLを設定
strURL = "http://www.tsware.jp/download/cabinet/jinz200.lzh"
'ダウンロード先の保存ファイル名を設定
strFileName = "c:\jinz200.lzh"
'ダウンロードの実行
GoSub ExecDownload
'*************************************
' HTMLファイルのダウンロード
'*************************************
strURL = "http://www.tsware.jp/index.htm"
strFileName = "c:\index.htm"
GoSub ExecDownload
'*************************************
' JPEGファイルのダウンロード
'*************************************
strURL = "http://www.tsware.jp/images/topmainphoto.jpg"
strFileName = "c:\topmainphoto.jpg"
GoSub ExecDownload
Exit Sub
ExecDownload:
'ダウンロードの実行
lngRet = URLDownloadToFile(0, strURL, strFileName, 0, 0)
If lngRet = 0 Then
MsgBox "ダウンロードに成功しました!", vbOKOnly + vbInformation
Else
MsgBox "ダウンロードに失敗しました!", vbOKOnly + vbExclamation
End If
Return
End Sub