忍者へFTP接続でVBAでファイルをアップロード
忍者へFTP接続でVBAでファイルをアップロードしたいです。
http://officetanaka.net/excel/vba/tips/tips47.htm
を参考に実践してるのですがうまくできません。
FFFTPを使っての手動でのアップロードは問題なく行えます。
-----------------------------------------------------------------
Sub Sample1()
Dim FTP, rc As Long, Server As String, User As String, Pass As String
Dim Target As String, Folder As String
Set FTP = CreateObject("basp21.FTP") ''FTPオブジェクト
Server = "ftp.xxxxx.com" ''ホストアドレス
User = "toru_tanaka" ''ユーザー名
Pass = "password" ''パスワード
Target = Application.GetOpenFilename() ''送信ファイル
If Target = "False" Then Exit Sub
Folder = "/" ''送信フォルダ
rc = FTP.Connect(Server, User, Pass)
If rc <> 0 Then
MsgBox "FTP接続できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
rc = FTP.PutFile(Target, Folder)
If rc <> 1 Then
MsgBox Dir(Target) & "を送信できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
MsgBox Dir(Target) & "を送信しました。", vbInformation
FTP.Close
End Sub
-----------------------------------------------------------------
の
rc = FTP.Connect(Server, User, Pass)
If rc <> 0 Then
MsgBox "FTP接続できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
これは通過できるのですが、
rc = FTP.PutFile(Target, Folder)
If rc <> 1 Then
MsgBox Dir(Target) & "を送信できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
で0が返るようで、送信できませんでした。となります。
トップページの階層にアップしたい場合は
Folder = "/"
でいいんですよね?
Folder = "/" にしても
Folder = ""にしても失敗します。
FFFTPのメッセージランを見ていると、
VBAで送信できなくても
-----------------------------------------------------------------
>TYPE A
200 転送タイプを A にセットしました
>PASV
227 Entering Passive Mode (***).
ダウンロードのためにホスト *** (***) に接続しています. (TCP/IPv4)
接続しました. (TCP/IPv4)
>MLSD
150 ASCIIモードのデータ接続をオープンします MLSD
226 転送が完了しました
ファイル一覧の取得は正常終了しました. (821 Bytes)
-----------------------------------------------------------------
が表示されます。
何が間違ってるのでしょうか?
ご教授よろしくお願いします。
お礼
ありがとうございました。