NonSoft

VBSやVBAでFTPアップロード/
FTPダウンロードする方法


 ち〜な〜み〜に〜

VBS(VB SCRIPT/WSH)やVBAで手軽にFTPのアップロードやダウンロードをする方法をご紹介します。

このサンプルではBASP21(Basp21.dllとBsmtp.dllをC:\Windowsにコピー)を使用しています。
あらかじめDLLをレジストリに登録するコマンド(Regsvr32.exe Basp21.dll)を実行する必要があります。

フリーのBASP21は32bit(x86)版です。
64bit(x64)環境(WindowsVista(Windows7/Windows8)以降)で32bit(x86)のBASP21をで使用する際は
32bit(x86)版のVBS(VB SCRIPT/WSH)を使用してください。

FTP関係のその他のツールやサンプルソースはこちらです。
FTPアップロード/ダウンロード方法(コマンドライン/バッチ)
FTP(File Transfer Protocol)送受信のサンプル(VB.NET)
FTP(File Transfer Protocol)送受信のサンプル(VB6)
FTPで差分アップロード/差分ダウンロードするツール
FTP対応のフォルダ同期ツール(フォルダ監視人)


★FTPアップロード/FTPダウンロード サンプル(ソース/コード)
' --------------------------------------------------------------------
' FTPクライアント用のオブジェクトの生成
Set BASP21 = CreateObject("Basp21.FTP")

' FTPサーバーへの接続(オープン)
rc = BASP21.Connect("ftp.xxxx.com", "USERID", "PASSWORD")

' FTPサーバーへの接続結果判定
If rc = 0 Then
    ' FTPサーバーへの接続成功
    
    ' ファイルのFTPアップロード(0:ASCIIモード、1:バイナリモード)
    rc = BASP21.PutFile("c:\ftp\test.dat", "/ftp", 1)
    
    ' FTPアップロード結果チェック
    If rc = 0 Then
        ' FTPアップロード 無し
        MsgBox "FTPアップロード 無し"
    ElseIf rc > 0 Then
        ' FTPアップロード 成功
        MsgBox "FTPアップロード 成功"
    Else
        ' FTPアップロード 失敗
        MsgBox "FTPアップロード 失敗"
    End If
    
    ' ファイルのFTPダウンロード(0:ASCIIモード、1:バイナリモード)
    rc = BASP21.GetFile("/ftp/test.dat", "C:\ftp", 1)
    
    ' FTPダウンロード結果チェック
    If rc = 0 Then
        ' FTPダウンロード 無し
        MsgBox "FTPダウンロード 無し"
    ElseIf rc > 0 Then
        ' FTPダウンロード 成功
        MsgBox "FTPダウンロード 成功"
    Else
        ' FTPダウンロード 失敗
        MsgBox "FTPダウンロード 失敗"
    End If
    
    ' FTPサーバーからの切断(クローズ)
    rc = BASP21.Close()
Else
    ' FTPサーバーへの接続失敗
    MsgBox "FTP接続 失敗"
End If
' --------------------------------------------------------------------