人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

InternetExplorerに関する質問です。
AccessVBA使ってIEを立ち上げて会員専用ページにログイン後、
ファイルをダウンロードするプログラムを書いています。
この際に「ファイルのダウンロード」というダイアログを出さずに
次々に保存する方法はありませんでしょうか?

Set objIE = CreateObject("InternetExplorer.application")
objIE.Navigate "https://abc.com/login"
objIE.Document.Forms(0).loginid.Value = "who" 'ユーザー名
objIE.Document.Forms(0).passwd.Value = "pswd" 'パスワード
objIE.Document.Forms(0).submit

objIE.Navigate "https://abc.com/download?command=CsvDL"
ログインまではできますが、最後の行でダイアログが出て止まってしまいます。
ちなみにダウンロードするファイルがCSVファイルなので、
Windowsエクスプローラーの「ツール」「フォルダオプション」「ファイルの種類」
からCSVファイルの設定で「ダウンロード後に確認する」のチェックも外して
見ましたが変化はありませんでした。

●質問者: handmadedude
●カテゴリ:コンピュータ インターネット
✍キーワード:application CSV IE InternetExplorer SET
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●25ポイント

詳細な環境が不明のため、ヒント的なもののみとなりますが、

support.microsoft.comからいくつかチョイスしてみましたので、

適宜参照ください。


確認せずに、ファイルをダウンロードする方法


DeleteUrlCacheEntry でキャッシュ(インターネット一時ファイル)削除も必須。

アプリケーションで Visual Basic .NET では、Web ブラウザー コントロールをホストとキャッシュを消去する方法

↑ .Netですが基本同じなので・・・。


追記:

当該サイトを「信頼済みサイト」として登録しておく必要がある場合もあります。


余談:

ファイルをダウンロードする際に保存の確認メッセージが表示されない場合の対処方法 (Windows XP の場合)

◎質問者からの返答

ありがとうございます。

こちらもすでに試したのですが、URLDownloadToFileはSSLの聞いたサイトでは

うまく作動しない模様で、エラーとなってしまいます。

ログイン認証通してこのAPIを使う方法があるといいのですが・・・


2 ● HALSPECIAL
●27ポイント

おそらくなのですが、サーバー側のレスポンスヘッダのContentTypeの指定がcsvの指定になっていない為と思います。

なので、現状の手法でのダウンロードでは、ブラウザの設定を変えても解決しないと思っています。


個人的には「InternetExplorer.application」よりも、

こちらの質問にあるような、

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1115967...

「MSXML2.XMLHTTP」をお勧めします。


特に、「ataddprocerさん」の回答がいいです。

ただし、この人の回答でも言及しているのですが、ログイン画面を経由する為、実際のリクエスト、レスポンスの状況を見て作りこんでいかなくてはなりません。


「MSXML2.XMLHTTP」で分からないことがあれば、できる範囲でフォローは可能です。


3 ● HALSPECIAL
●42ポイント ベストアンサー

再回答ですみません。

>おそらくなのですが、サーバー側のレスポンスヘッダのContentTypeの指定がcsvの指定になっていない為と思います。

>なので、現状の手法でのダウンロードでは、ブラウザの設定を変えても解決しないと思っています。

勘違いというか、寝ぼけた事を言ってしまいました。

この部分は無かった事にしてください。汗


「InternetExplorer.application」で行くのであれば、

WIN32APIでメッセージを投げて、ボタンを押してしまうという方法もあります。


過去質問ですが、こちらを参考にしてください。

question:1248657374:title

◎質問者からの返答

ご回答ありがとうございます。

試しにこちらのコードをそのまま貼ってやって見ましたが

「ファイルのダウンロード」ダイアログを検知することなく

そのまま流れてしまいました。

が、こちらを参照したところ

http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200901/0901...

WIN32APIでボタンを押すということが出来ましたので

一件落着しました。

いろいろヒント頂き勉強になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ