Logo

Dateien aus VBA von einem FTP-Server herunterladen

VBA

Die Skriptsprache VBA (Visual Basic for Applications) ist aus dem von Microsoft entwickelten BASIC-Dialekt Visual Basic abgeleitet und erleichtert die Ablaufsteuerung innerhalb von Microsoft-Office-Produkte.

Voraussetzungen

Als erstes muss dem VBA-Projekt ein Verweis auf die Datei "MSINET.OCX" (Microsoft Internet Transfer Control) hinzugefügt werden. Die benötigte Datei befindet sich i.d.R. in den folgenden Verzeichnissen:

Dieses Steuerelement stellt die Basis für sämtliche Internet-Kommunikation zur Verfügung. In unserem Beispiel konzentrieren wir uns hier auf das Herunterladen einer Datei von einem FTP-Server.

Herunterladen einer Datei vom FTP-Server

Function FTP_Download_File(QuellDatei As String, ZielDatei As String, FTPServer As String, FTPBenutzer As String, FTPKennwort As String) As Long
    Dim FTP             As Inet
    Dim ExecString      As String
    
    On Local Error GoTo FuncExit
    
    '-----------------------------------------------------------------------
    ' Verbindungsaufbau
    '-----------------------------------------------------------------------
    Set FTP = New Inet
    With FTP
        .Protocol = icFTP
        .RemoteHost = FTPServer
        .Username = FTPBenutzer
        .Password = FTPKennwort
        '---------------------------------------
        ' Download durchführen
        '---------------------------------------
        ExecString = "Get " & Chr(34) & QuellDatei & Chr(34) & " " & Chr(34) & ZielDatei & Chr(34)
        .Execute .URL, ExecString
        Do While .StillExecuting
            DoEvents
        Loop
    End With
    
FuncExit:
    FTP_Upload_File = FTP.ResponseCode
    Set FTP = Nothing
End Function
			

Aufruf der Funktion

Die Funktion ist aufgrund der Übergabeparameter so aufgebaut, dass Sie problemlos für verschiedene Dateien und/oder FTP-Server verwendet werden kann.

Response = FTP_Download_File("/FTP_Verzeichnis/download.txt","C:\TEMP\download.txt","ftp.meinftpserver.tld","Benutzername","Kennwort")

Rückgabewerte (Response Codes)

Die Rückgabewerte des Microsoft Internet Transfer Control haben wir im Tipp Dateien aus VBA auf einen FTP-Server hochladen aufgelistet.

In einem weiteren Tipp behandeln wir die umgekehrte Richtung, den Upload