「一気に最後まで読んだ」本、教えて下さい!

BASP21でのFTPサーバーへのアップデートが出来ないです。

BASP21をインストールし、サーバーのユーザー名やパスワードも
あっている状態です。
しかし、アップデートすると

「を送信できませんでした。」
と表示され、アップデートできませんでした。

「FTP接続できませんでした。」は抜けているので、
それ以外が原因だとは思うのですが分かりません。


Visual Basicのサンプルから書きました。
以下の通りです。

初心者のため質問に不備があるかもしれません。
予めお許しください。

Sub FTPサーバーにUP()
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.●●●●●●.jp" ''ホストアドレス
User = "●●●●●●" ''ユーザー名
Pass = "●●●●●●●●" ''パスワード
Target = "C:\Users\●●\Desktop.エクセルファイル.xls" ''送信ファイル
If Target = "False" Then Exit Sub
Folder = "/home/●●●●●●/●●●●/●●●/状況"
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

A 回答 (2件)

>ウィルスバスターの鉄壁ガードに穴を空けることが出来ませんでした。



# FTPサーバ名[:ポート番号][:タイムアウト][ファイアーウォール]。":" で区切ってポート番号(省略値21)とタイムアウト値(秒単位、省略値120)を指定できます。

# rc = ftp.Connect("ftp.microsoft.com:21:120","anonymous","who@who.com")

http://www.hi-ho.ne.jp/babaq/basp21f.html

BASP21 FTPは、ポート21なんていう所を使っているようですね。
その21を25にしてあげれば、標準で通るはずです。

今、私自身のファイヤーウォールを確認してみましたが、25は、あっても、21は通常入れていないから、やっぱりブロックしてしまうようですね。

この回答への補足

申し訳ございません。

ポート番号を25に変更すると
自分で作成したメッセージ、
「FTP接続できませんでした。」

となってしまいました。

と言うことでファイヤーウォールが問題ではないのかもしれません。
何度もお答えいただいてありがとうございます。

参考(というよりそのまま抜粋してしまったのですが)にしたのは
http://officetanaka.net/excel/vba/tips/tips47.htm
です。

補足日時:2010/12/11 19:11
    • good
    • 0
この回答へのお礼

何度もありがとうございました。

師走で忙しく、まだ試せていないです。
教えていただいたのに申し訳ございません。

試してからベストアンサーに設定いたします。

お礼日時:2010/12/04 21:31

VB カテゴリではレスがつかなかったようですね。



いくつか気になる点を指摘しておきます。

>Target = "C:\Users\●●\Desktop.エクセルファイル.xls" ''送信ファイル
>If Target = "False" Then Exit Sub

ここは、
Target = "C:\Users\●●\Desktop.エクセルファイル.xls" ''送信ファイル
If Dir(Target) ="" Then Exit Sub

>rc = FTP.PutFile(Target, Folder) ←テキスト送信です。
Excelファイルは、バイナリですから、

rc = FTP.PutFile(Target, Folder,1 )'三番目の引数のタイプは、1 になります。

なお、ファイヤーウォールは、開けておいてください。
    • good
    • 0
この回答へのお礼

御礼が遅くなってしまい大変申し訳ございません。

ファイヤーウォールが原因のようで、
ウィルスバスターの鉄壁ガードに穴を空けることが出来ませんでした。

もう少し勉強してみます。

お礼日時:2010/11/29 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!