バッチファイル指定してFTPコマンドを実行する

すでに存在するファイルをFTPサーバーにアップするためのエクセルマクロです。

Function putFileByftp()

    ' 準備処理
    Dim sCmd As String
    Set WshShell = CreateObject("WScript.Shell")

    ' ftpをバッチファイル指定して実行する
    sCmd = "ftp -s:C:\xxx\ftpcmd.txt"
    Set wExec = WshShell.Exec("%ComSpec% /c " & sCmd)

    ' 上記処理の完了を待つ
    Do While wExec.Status = 0
        DoEvents
    Loop

    ' 終了処理
    Set wExec = Nothing
    Set WshShell = Nothing

End Function

FTPコマンドを記述したバッチファイル(ftpcmd.txt)

open <ftpserver>
<id>
<passwd>
asc
cd /xxx/xxx
lcd C:\xxx\xxx
put <filename>
disconnect
bye

エクセルマクロ説明サイト