![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
コレまで使っていた「basp21」がwin10で動かないため、
basp21を諦め、サイトで探したところ、
以下のようなサンプルを見付けやってみました。
ステップで追っていくと、
接続、ログインまではスンナリ行けていますが、
いざファイルのアップのところで、タイムアウトしてしまいます。
何処が悪いのか分かりません。
原因が知りたいので、考えられることを教えて下さい。
タイムアウトは30秒くらいかと思います。
ログインまではアッという間なので、
時間が掛かっているのではなく、
何かが不味いと思っています。
宜しくお願いします。
環境は、
win10home、excel2003、です。
使用(D/Lした)excelvbaです。******************************
Option Explicit
Private Declare Function InternetOpenS _
Lib "WinInet.DLL" Alias "InternetOpenA" _
(ByVal lpszAgent As String, ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
Private Declare Function InternetConnectS Lib _
"WinInet.DLL" Alias "InternetConnectA" _
(ByVal hInternetSession As Long, ByVal lpszServerName As String, _
ByVal nServerPort As Integer, ByVal lpszUsername As String, _
ByVal lpszPassword As String, ByVal dwService As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Declare Function FtpSetCurrentDirectoryS _
Lib "WinInet.DLL" Alias "FtpSetCurrentDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Long
Private Declare Function FtpPutFileB _
Lib "WinInet.DLL" Alias "FtpPutFileA" _
(ByVal hFtpSession As Long, ByRef lpszLocalFile As Byte, _
ByRef lpszNewRemoteFile As Byte, ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle _
Lib "WinInet.DLL" _
(ByVal hInet As Long) As Long
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_DEFAULT_FTP_PORT = 21
Private Const INTERNET_SERVICE_FTP = 1&
Private Const FTP_TRANSFER_TYPE_ASCII = &H1
Private Const FTP_TRANSFER_TYPE_BINARY = &H2
Sub FTP_Upload()
'FTPアップロードの例
Const cstrServer As String = "netftp.asahi-net.or.jp" 'FTPサーバー名
Const cstrUserName As String = "xxxxxxx" 'アカウント名
Const cstrPassword As String = "yyyyyyyy" 'パスワード
Dim strDir As String
Dim strFrom As String
Dim strTo As String
Dim abytFrom() As Byte
Dim abytTo() As Byte
Dim lngInet As Long
Dim lngFTP As Long
Dim lngRet As Long
'アップロード先ディレクトリを設定
strDir = "ssss/tttt/uuuu"
'アップロード元ファイル名を設定
strFrom = ThisWorkbook.Path & "\wk8.log"
'アップロード先ファイル名を設定
strTo = "\wk8.log"
'FTPをオープン
lngInet = InternetOpenS(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
vbNullString, vbNullString, 0&)
If lngInet <> 0 Then
'成功したらFTPサーバーに接続
lngFTP = InternetConnectS(lngInet, cstrServer, _
INTERNET_DEFAULT_FTP_PORT, _
cstrUserName, cstrPassword, _
INTERNET_SERVICE_FTP, 0&, 0&)
If lngFTP <> 0 Then
'成功したとき
'アップロード先ディレクトリへ移動
FtpSetCurrentDirectoryS lngFTP, strDir
'ファイル名をUnicodeから変換
abytFrom = StrConv((strFrom & vbNullChar), vbFromUnicode)
abytTo = StrConv((strTo & vbNullChar), vbFromUnicode)
'ファイルをバイナリモードでアップロード
'(ASCIIモードの場合はTRANSFER_TYPE_ASCIIを指定)
lngRet = FtpPutFileB(lngFTP, abytFrom(0), abytTo(0), _
FTP_TRANSFER_TYPE_ASCII, 0&)
If lngRet <> 0 Then
'成功したとき
MsgBox "ファイルのアップロードに成功しました!", vbOKOnly + vbInformation
End If
End If
'FTPをクローズ
InternetCloseHandle lngInet
End If
End Sub
No.1ベストアンサー
- 回答日時:
パッシブモードで接続していないからでしょう。
FTP接続には、アクティブモードとパッシブモードの2つがあります。
INTERNET_FLAG_PASSIVE を使うようです。
早速有り難うございました。
まさにご指摘どおりでした。
調べて設定したところアッサリ解決してしまいました。
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAでFTPファイル転送がうまくいかない
Visual Basic(VBA)
-
FTPでputすると空ファイルが出来てしまう
その他(プログラミング・Web制作)
-
Basp21のメール送信機能を win10(64bit) Excel2019で使用する方法
Excel(エクセル)
-
-
4
FTPエラー425
その他(コンピューター・テクノロジー)
-
5
ftpのアクティブモード対応モジュールの作成について
C言語・C++・C#
-
6
win10のbasp21がエラーになる
フリーソフト
-
7
教えてください。FTPアップロードが出来なくなりました。
Visual Basic(VBA)
-
8
BASP21のファイルアップロードでエラー
その他(プログラミング・Web制作)
-
9
フリーFTPソフトBASP21のタイムアウト
Visual Basic(VBA)
-
10
FTPでエクセルをPUTするとファイルが破損する
Visual Basic(VBA)
-
11
64bitでbasp21の使用方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
BASP21のFTPで日本語ファイル名...
-
ftpでアップロードが出来ない
-
10MB以内のJPG画像
-
画像アップロードについて
-
VBでクラウドストレージにア...
-
F F FTPにアップロードしたので...
-
ファイルサイズがpost_max_size...
-
大きいファイルのアップロード...
-
ファイルのアップロードを行う...
-
携帯からファイルアップロード...
-
アップロードのボタンが有りま...
-
ファイルのアップロード$_FILES...
-
unlinkでどうしてもファイルが...
-
one drive のアップロード失敗...
-
PHPにてWebサーバー内データを...
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ファイルアップロードの上限を...
-
youtubeに音声のみのmp4ファイ...
-
FTPClientで転送結果(OKかFAIL)
-
one drive のアップロード失敗...
-
unlinkでどうしてもファイルが...
-
ファイルをGET送信でアップロー...
-
ftpでアップロードが出来ない
-
ファイルサイズがpost_max_size...
-
PHPでxmlをAPIに送信する方法(P...
-
aws cloud9というものを使って...
-
ファイルアップロードについて...
-
DUMPした巨大SQLファイルをイン...
-
全角ファイル名をアップロード...
-
PHPMailerで大きなファイルが送...
-
SmartyでHTMLソースの変更が反...
-
Struts2 ファイルアップロード
-
ファイルアップロードしたもの...
-
画像ファイルの名前をそのままU...
-
サーバーにアップロードしたい
おすすめ情報