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:
- x86: C:\Windows\system32\
- x64: C:\Windows\SysWOW64\
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