- PR -

vbaでftp接続、、

投稿者投稿内容
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-05-25 11:21
会社のFTPサーバーよりファイルをダウンロードするVBAコードを以下のように書きました。


API InternetOpenでインターネットをOPENし、
inthd = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)  ---> @

FTPサーバーへ接続します
ftphd = InternetConnect(inthd, "osamaiti.co.jp", INTERNET_DEFAULT_FTP_PORT, "anonymous", "", INTERNET_SERVICE_FTP, 0, 0) ---> A

成功しますと、ファイルをダウンロードします。
FtpGetFile(ftphd, "/order/test/order.exe", "c:\temp\order.exe", False, FILE_ATTRIBUTE_NORMAL, dMd + INTERNET_FLAG_RELOAD, 0) ---> B

これを会社の社内LANを実行すれば問題なく動きます。
しかし、自宅で実行しますと、長い間Excelが動かなくなります。
ずっとExcelが動かないので、強制的に終了させようとすると他で開いているエクセルも強制的に閉じられてしまいます。
Excelだけでなく、PC自体がなにか重い処理でもやっているのか、ものすごい動きが重いです。

原因はAのFTPサーバーへ接続しようとサーバーを探しているかなと思いますが、、
それにしても、こんな長い時間待たされたり(10分待ても、、)、結局強制終了するしか方法がないことはないと思います。

原因を解決策を教えていただけますでしょうか?

宜しくお願い致します。
kou
会議室デビュー日: 2003/03/10
投稿数: 17
投稿日時: 2006-05-25 12:17
はじめまして。

コマンドプロンプトからFTPコマンドで接続した場合も同様に遅いのでしょうか?
伝兵衛
常連さん
会議室デビュー日: 2006/04/17
投稿数: 20
お住まい・勤務地: きっとあなたの側にいる
投稿日時: 2006-05-25 12:43
社内のネットワーク環境はNTドメインですか?ActiveDirectoryですか?
FTPに接続する際にアドレス使ってますがこれはインターネット上で解決できるアドレスですか?
ひょっとして社内DNSだけが解決できる名前なのでは・・・?

コード自体が社内で動いて自宅ではダメというのはコード自体に問題があるとも思えませんので
名前解決の部分じゃないかなあ?

あと、そのFTPは当然インターネット上に公開されているのですよね?
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-05-25 12:54
スンちゃんパパさん、こんにちは。

引用:

inthd = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)



上記の第二引数ですが、INTERNET_OPEN_TYPE_PRECONFIG を指定するとどうなります?
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-05-26 01:29
ありがとうございます。

帰宅してテストをしてみて気がついたのですが、
FTP接続の部分は問題がないようです。
コードをDebugしてみたら、すぐ接続できないとちゃんと結果が返ってきました。
ですので、申し訳ございませんが、質問はなかったことにしてください。

テストの結果と新たな質問です。
今日はExcelがどうなるか最後まで待つことにしました。
10分ほどしたら、次のようなダイアログボックスが出てきました。

開いているブックには、ほかのファイルへの自動リンクが設定されています。このブックを更新し、ほかのブック。。。
・すべての情報を更新する場合は[はい]をクリックしてください。
・既存の情報を保持する場合は[いいえ]をクリックしてください。

このダイアログボックスが出るまでほぼ10分かかりますね。
おそらく原因はこれかと思いますが、何が問題なのかよくわからないです。

どなたか教えていただけますでしょうか?



じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-26 07:36
引用:

スンちゃんパパさんの書き込み (2006-05-26 01:29) より:

10分ほどしたら、次のようなダイアログボックスが出てきました。
開いているブックには、ほかのファイルへの自動リンクが設定されています。このブックを更新し、ほかのブック。。。
・すべての情報を更新する場合は[はい]をクリックしてください。
・既存の情報を保持する場合は[いいえ]をクリックしてください。

このダイアログボックスが出るまでほぼ10分かかりますね。
おそらく原因はこれかと思いますが、何が問題なのかよくわからないです。


ダイアログが表示される理由はわかりますが、10 分待たされる理由はわからないでしょうね。
端末自体が、おかしくなっているとしか思えないです。

念のためですが、ネットワークが切断された状態、
アンチウイルスソフトが作動していない状態でもテストしてみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-05-26 10:42
引用:
-------------------------------------------------------------------------------
ダイアログが表示される理由はわかりますが、10 分待たされる理由はわからないでしょうね。
端末自体が、おかしくなっているとしか思えないです。
-------------------------------------------------------------------------------
すみませんが、
ダイアログが表示される理由は何でしょうか?まずはこれから解決しないと、、
あと、じゃんぬねっと様は10 分待たされる理由とダイアログが表示される理由がそれぞれ違うと思っていらっしゃるようですが、そうでしょうか?
私は根拠はないですが、同じ理由かと思っていましたが、、

引用:
-------------------------------------------------------------------------------
念のためですが、ネットワークが切断された状態、
アンチウイルスソフトが作動していない状態でもテストしてみてください。
-------------------------------------------------------------------------------
今日、帰宅したらやってみます。
結果は掲載しますので、宜しくお願い致します。^^

いつも有り難うございます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-26 11:39
引用:

スンちゃんパパさんの書き込み (2006-05-26 10:42) より:

すみませんが、ダイアログが表示される理由は何でしょうか?


通常は、

> 開いているブックには、ほかのファイルへの自動リンクが設定されています。

でしょう。

"覚え" がないのであれば、やっぱり端末の環境がおかしいんじゃないでしょうか?
Office を再インストールするなどした方が良いかもしれません。

引用:

あと、じゃんぬねっと様は10 分待たされる理由とダイアログが表示される理由がそれぞれ違うと思っていらっしゃるようですが、そうでしょうか?
私は根拠はないですが、同じ理由かと思っていましたが、、


ダイアログが表示される理由は存在するので、通常は別の理由と考えます。
ただ、先にも書いたように "覚え" がないのであれば別です。
(覚えがあるかどうかは、私にはわからなかったもので...)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)