4

ここ数時間、VBA を使用してファイルをコンピューターに保存する方法を見つけようとしています。別のフォーラムで見つけた以下のコード テンプレートは有望に思えますが、デスクトップにアクセスしてアクセスすると、実際に必要なファイルではなく、ページのソース コードのように見える .csv ファイルが含まれています。これは、URL にアクセスしても、ファイルが自動的にダウンロードされないことが原因である可能性があります。むしろ、ファイルを特定の場所に保存するように求められます (サイトにアップロードされたファイルのパス名がわからないため)。これに対応するためにこのコードを変更する方法はありますか、それとも完全に別のコードを使用する必要がありますか?

Sub Test()
Dim FileNum As Long
Dim FileData() As Byte
Dim MyFile As String
Dim WHTTP As Object

On Error Resume Next
    Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
    If Err.Number <> 0 Then
        Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
    End If
On Error GoTo 0


MyFile = "MY_URL_HERE"

WHTTP.Open "GET", MyFile, False
WHTTP.send
FileData = WHTTP.responseBody
Set WHTTP = Nothing

If Dir("C:\Users\BLAHBLAH\Desktop", vbDirectory) = Empty Then MkDir "C:\Users\BLAHBLAH\Desktop"

FileNum = FreeFile
Open "C:\Users\BLAHBLAH\Desktop\memberdatabase.csv" For Binary Access Write As #FileNum
    Put #FileNum, 1, FileData
Close #FileNum

End Sub

クロス投稿:
http://www.ozgrid.com/forum/showthread.php?t=178884
http://www.excelforum.com/excel-programming-vba-macros/925352-vba-go-to-website- and-download-file-from-save-prompt.html

4

2 に答える 2

1

save/download data私は何年にもわたって、 vba を使用する方法をさらに見つけました。

  • 私が好み、推奨する最初のオプションは、次のソリューションURLDownloadToFile functionを使用することですuser32 library
  • 同じく言及された2番目のものはあなた自身です。ここでのポイントは、 を使用することMicrosoft WinHTTP Services (Interop.WinHttp) COM libraryです。これを実現するために、Interop.WinHttp 参照をプロジェクトリンクに追加することもできます。その後、こちらのリンクのような簡単な表記を使用できます
  • 私が知っている3番目のオプションは、ブラウザに保存するように依頼することであり、そのSave_Over_Existing_Click_Yes機能を使用することはSantoshによって言及されました. この場合、COM インターフェイスを使用して Internet Explorer を開き、適切なサイトに移動します。そのため、エディタのインテリセンス機能を得るために、 Microsoft Internet Controls( Interop.SHDocVw) とMicrosoft HTML Object Library( ) の参照をプロジェクトに追加する必要があります。これはハッキングによる回避策であるため、このダウンロード方法Microsoft.mshtmlは好きではありません。しかし、IEセッションがすでに認証されているなどの場合、これはうまく機能します。セキュリティ上の懸念から、インターネット コントロールの保存機能は廃止されました。例を参照してください:リンク

新しいほど、必要なものをダウンロードするための正しい URL を取得する必要が少なくなります。間違ったものを選択すると、別のものをダウンロードします:)

  • そのため、ブラウザに入力して、使用する URL が正しいことを確認してください。正しい .csv ファイルを開くと、ソースも機能します。
  • また、さらに情報を送信してみてください: たとえば、.csv ファイルへの URL
于 2016-01-10T22:16:01.830 に答える