
コレまで使っていた「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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラウドにアップロード」」...
-
onedrive にexcelファイルをア...
-
違法アップロードについて
-
仮想フレームバッファXvfb上でf...
-
PHPでメールを送信するには
-
PHPで新しいウインドウで開く命...
-
PHPのsafemodeとは?
-
PHPリンク
-
iphoneで虫眼鏡の作り方
-
*.php、*.php3、*.phtmlの違い
-
PHP4、PHP5 1ファイル複数クラ...
-
VBSの「MsgBox」について
-
画像をDBに保存し、表示させ...
-
拡張子php画像をjpg画像等に変...
-
xamppのDocumentRootでindex,ht...
-
eclipseのlocalhostの設定について
-
localhostにリダイレクトされて...
-
【PHP】ページを更新すると勝手...
-
【エクセルVBA】メール送信前に...
-
フォームで戻った際に入力済み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
ftpでアップロードが出来ない
-
ファイルサイズがpost_max_size...
-
ファイルアップロードしたもの...
-
FTPClientで転送結果(OKかFAIL)
-
unlinkでどうしてもファイルが...
-
VBでクラウドストレージにア...
-
ファイルのアップロード
-
movabletypeでPDFファイルをア...
-
phpファイルの編集について
-
BASP21のFTPで日本語ファイル名...
-
違法アップロードについて
-
掲示板のアイコンについて
-
ファイルのアップロードが、ど...
-
SmartyでHTMLソースの変更が反...
-
Googleドキュメントについて教...
-
HTMLファイルのアップロードに...
-
お悩み相談です(※長文な上にか...
-
gif画像をアップロードするには?
おすすめ情報