インターネットからファイルをダウンロードする方法
◆概要
この資料は、Microsoft Accessで、インターネットからファイルをダウンロードする方法について記載しています。
ファイルをインターネットからダウンロードする方法としては、インターネット トランスファ コントロールを利用する方法とWindows APIを利用する方法があります。
◆インターネット トランスファ コントロールを利用する方法
ツールボックスの「コントロールの選択」ボタンをクリックし、表示されたメニューからMicrosoft Internet Transfer Controlを選択しし、フォームに貼り付けます。
次の例は郵便会社のホームページから最新の郵便番号データ(福岡県版)を取得します。
Private Function FileDownload() On Error GoTo Download_Error Dim strURL As String ' 取得URL Dim strFileName As String ' ファイル名 Dim intFileNo As Integer Dim bytHtml() As Byte Dim Cur_Folder As String DoCmd.Hourglass True Application.Echo False, "最新郵便番号をダウンロード中..." ' downlodするファイル名 strURL = "http://www.post.japanpost.jp/zipcode/dl/oogaki/lzh/40fukuok.lzh" ' ファイルを保存するフォルダ名 Cur_Folder ="C:\temp\" ' 福岡県版郵便番号を取得する strFileName = Cur_Folder & "\40fukuok.lzh" 'SAVE ファイル名 intFileNo = FreeFile 'ファイルNoを取得 DoCmd.Hourglass True DoEvents 'ファイルをバイナリモードで読み込み bytHtml() = Inet1.OpenURL(strURL, icByteArray) '保存処理 Open strFileName For Binary Access Write As #intFileNo Put #intFileNo, , bytHtml() Close #intFileNo DoCmd.Hourglass False Application.Echo True DoCmd.Hourglass False Exit Function Download_Error: MSGBOX (Err.Number & ":" & Err.Description), _ vbOKOnly + vbCritical, "接続エラー"◆Windows 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 Private Function FileDownload2() Dim SaveFileName As String Dim DownloadFile As String Dim Ret As Long Dim Cur_Folder As String ' データベースのあるフォルダ名の取得 Cur_Folder = PickFolder(CurrentDb.Name) SaveFileName = Cur_Folder & "\40fukuok.lzh" 'SAVE ファイル名 DownloadFile = "http://www.post.japanpost.jp/zipcode/dl/oogaki/lzh/40fukuok.lzh" Ret = URLDownloadToFile(0, DownloadFile, SaveFileName, 0, 0) DoEvents End Function
Note インターネット トランスファ コントロールを利用するよりも、Windows APIを利用した方が高速にダウンロードすることができます。
▼ページトップに戻る