40

Excel で VBA を使用して Web サイトから CSV ファイルをダウンロードする必要があります。調査サービスからのデータであるため、サーバーも私を認証する必要がありました。

これには、VBA で制御された Internet Explorer を使用する例がたくさんあります。ただし、それはほとんどが遅いソリューションであり、ほとんどが複雑でもありました。

更新: しばらくして、Excel で Microsoft.XMLHTTP オブジェクトを使用する気の利いたソリューションを見つけました。今後の参考のために、以下の解決策を共有することを考えました。

4

6 に答える 6

63

このソリューションは、次の Web サイトに基づいています 。 csv-from-url

既存のファイルを上書きし、ログイン資格情報を渡すようにわずかに変更されています。

Sub DownloadFile()

Dim myURL As String
myURL = "https://YourWebSite.com/?your_query_parameters"

Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "username", "password"
WinHttpReq.send

If WinHttpReq.Status = 200 Then
    Set oStream = CreateObject("ADODB.Stream")
    oStream.Open
    oStream.Type = 1
    oStream.Write WinHttpReq.responseBody
    oStream.SaveToFile "C:\file.csv", 2 ' 1 = no overwrite, 2 = overwrite
    oStream.Close
End If

End Sub
于 2013-07-26T09:13:45.417 に答える