1

VBAを使用してExcelでインターネットからファイルをダウンロードしたい。このファイルは、従業員のリストに関する情報を含むデータベースです。C:\Users\"ユーザー名"\FCMMIS\ にファイルを保存したい

これは、私が達成したい段階的なプロセスです。

  1. Excel は VBA を使用して、指定された Web アドレスからファイルをダウンロードします。
  2. ダウンロードしたファイルはC:\Users\"ユーザー名"\FCMMISに保存されます*
  3. Excel は VBA を介してダウンロードしたデータベースとリンクし、必要なデータを取得します。

別の注意として、問題のExcelファイルは、ラップトップを使用するさまざまな人々によって使用されます。ファイルを「ユーザー」フォルダーに保存できるかどうか、または保存を許可するために許可を与える必要があるかどうかはわかりません。

完全なアプリケーションを作成するなど、これに対するより良い解決策があることは知っていますが、要件のために、Excel と VBA にこだわっています。

編集(パート3の後に行う):

3.1: データベースがダウンロードされると、Excel ファイルは従業員テーブルからレコードを取得し、それらを同じ Excel ファイルの新しいワークシートに出力します。

3.2: 印刷されたデータは、ワークシートのさまざまな機能に使用されます。

ただし、データベース自体のデータを操作するだけで効率的なのか、作成したワークシートから操作するのかについて議論しています。

4

2 に答える 2

2

次のコードは、MattVidasの記事に基づいています。

そして、ポイント3に対するあなたの答えを待っていますか?

Function Download_File(ByVal vWebFile As String, ByVal vLocalFile As String) As Boolean
    Dim oXMLHTTP As Object, i As Long, vFF As Long, oResp() As Byte

    'You can also set a ref. to Microsoft XML, and Dim oXMLHTTP as MSXML2.XMLHTTP
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    oXMLHTTP.Open "GET", vWebFile, False 'Open socket to get the website
    oXMLHTTP.Send 'send request

    'Wait for request to finish
    Do While oXMLHTTP.readyState <> 4
    DoEvents
    Loop

    oResp = oXMLHTTP.responseBody 'Returns the results as a byte array

    'Create local file and save results to it
    vFF = FreeFile
    If Dir(vLocalFile) <> "" Then Kill vLocalFile
    Open vLocalFile For Binary As #vFF
    Put #vFF, , oResp
    Close #vFF

    'Clear memory
    Set oXMLHTTP = Nothing
End Function



Sub Testing()
    Download_File "http://example.org/yourDataBaseFile", "C:\Users\" & Environ("username") & "\yourDataBaseFile"
End Sub
于 2012-10-10T09:28:04.220 に答える
0

問題のファイルがワークブックの場合は、次のようにすることができます。

With Workbooks.Open("http://example.org/yourfile.xls")
    .SaveAs "C:\Users\example\yourfile.xls"
    .Close
End With
于 2012-10-10T08:54:47.513 に答える