- 締切済み
URLDownloadToFile でダウンロード不可
Access2003のVBAでIEを立ち上げて、あるサイトにログインした後、 サイトのメニュー上にあるCSVダウンロードをキックしてファイルを ダウンロードしようとしてます。 下記のようなコードを書いて見ましたが、表向きエラーは出ないものの ファイルのダウンロードは出来ません。 ブラウザ立ち上げ→ログインまではうまくいっています。 さらに詳細に調べると、URLDownloadToFileのところでエラーを 返していて失敗しているということが判明しました。 エラーコードは-2146697208となっています。 こちら何が問題でしょうか?どなたかご教示いただけると助かります。 Sub ie_test() Dim objIE As Object Const strURL = "https://xxx.com/csv.php?command=Csv" Dim strFNAME As String Dim returnValue Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "https://xxx.com/" Do While objIE.Busy = True DoEvents Loop objIE.Document.Forms(0).loginid.Value = "myname" 'ユーザー名 objIE.Document.Forms(0).passwd.Value = "pswd" 'パスワード 'フォームをSubmitする objIE.Document.Forms(0).submit Do While objIE.Busy Or (objIE.ReadyState <> 4): DoEvents: Loop 'READYSTATE_COMPLETE=4 'URLDownloadToFile API をコールする strFNAME = "c:\test.csv" returnValue = URLDownloadToFile(0, strURL, strFNAME, 0, 0) objIE.Quit '.Quitで閉じる End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KenKen_SP
- ベストアンサー率62% (785/1258)
IE を操作して CSV のダウンロードリンクをクリックすることは、 できないのでしょうか? URLDownloadToFile API で SSL サイトからのダウンロードは VBA ではかなりキツイようです。 参考URL:IE7「ファイルのダウンロード」のクリック http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200901/09010002.txt 理由は、参考 URL 先で K.J.K 氏が説明しておられます。 また、同氏の WEB ページにおいてクラスモジュールが公開されてます。 http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/ 中段にある、「ファイルを手軽にダウンロードする:EasyDL3.lzh」 です。 VB6 向けですが、参考になると思いますよ。
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
少し試してみましたが、httpsの場合にエラーが返されます。 URLDownloadToFile自体がhttpsに対応していない可能性がありますね。 また仮に通ったとしても、ブラウザのインスタンスが異なるので新規セッション(未認証)として扱われ、ユーザー認証ではじかれる可能性があります。 代替案が出せませんが、ひとまずアドバイスを。
お礼
ありがとうございます。 私もそんな気がしております。 同じセッション内でファイルダウンロードできる方法あれば 是非ご教示ください。