Logo

Dateien aus VBA auf einen FTP-Server hochladen

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 Hochladen einer Datei zu einem FTP-Server.

Hochladen einer Datei zum FTP-Server

Function FTP_Upload_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
        '-------------------------------------------------------------------
        ' Upload
        '-------------------------------------------------------------------
        ExecString = "put " & 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_Upload_File("C:\TEMP\upload.txt","/FTP_Verzeichnis/upload.txt","ftp.meinftpserver.tld","Benutzername","Kennwort")

Rückgabewerte (Response Codes)

Nachfolgend eine Übersicht der gebräuchlichsten Response-Codes anhand deren bei Bedarf ein Fehlermanagement oder eine Statusanzeige implementiert werden kann.

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