• 締切
  • すぐに回答を!

VBA IEを操作。ファイルダウンロード

  • 質問No.8732474
  • 閲覧数1416
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 64% (16/25)

IEを操作して、ファイルをダウンロードしようと思います。

色んなサイトからとってきて、使わせてもらっています。
'---------------------------------IEを開くときに使う
Sub IE_OPEN(webUrl As String)
Dim objShell

Dim writesheet As Worksheet
Dim n As Long
Dim ID As String, Password As String

Set objShell = CreateObject("Shell.Application")

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate2 webUrl


Do While ie.Busy Or ie.readyState <> 4
DoEvents
Loop

Dim objINPUT
Set objINPUT = ie.document.getElementsByTagName("INPUT")
'ループで頭からテキストが 次へ を探す

For n = 0 To objINPUT.Length - 1
'※ type="submitボタンなので、.InnerTextじゃなくて、.Valueです ※※注意
If InStr(objINPUT(n).Value, "ログイン") > 0 Then '文字列の中から見つけたら
Worksheets("Sheet1").Activate

Do While ie.Busy
Loop

objINPUT(n).Click '見つけたINPUTタグのオブジェクトをクリック

Do While ie.Busy
Loop

Exit For
End If

Next
Set objINPUT = Nothing 'オブジェクト変数解放
End Sub
'------------------------------IEを開く(この段階では既に開いてあります。)
Private Sub CommandButton1_Click()
Do While ie.Busy Or ie.readyState <> 4
DoEvents
Loop


ie.document.all.ah_ehName.Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex) 'ID
Do While ie.Busy
Loop

Dim objINPUT
Dim n As Long

Set objINPUT = ie.document.getElementsByTagName("INPUT")

For n = 0 To objINPUT.Length - 1
If InStr(objINPUT(n).Value, "ダウンロード") > 0 Then
objINPUT(n).Click
Do While ie.Busy
Loop
Exit For
End If
Next

Do While ie.Busy = True
DoEvents
Loop

SendKeys "%S", True'保存

Do While ie.Busy = True
DoEvents '何もしないループ(笑)
Loop

SendKeys "%O",True'ファイルを開く?

Do While ie.Busy = True
DoEvents
Loop


'ie.Quit
End Sub
’==================-

面倒なので、IEはPublic変数として
モジュールに書いています。
(色んなモジュールを経由する必要があるため、このような手段を取りました)

SendKeysをIEに送るというのが出来ずに困っています。
ダウンロードというボタンを押してのダウンロードなので、
ダウンロード用のURL等は分かりません。

Excel2003を使っています。
どうにかSendkeysで出来ないでしょうか?

もしくは、もう少し分かりやすい方法は無いでしょうか。

(ファイルを保存しますか?のダイアログの「保存」をクリックして
 所定の場所におき、開きたい。 そのまま開くのでもいいけれど、動作が不安定になるのは困る)

以上、よろしくお願い致します。

回答 (全1件)

  • 回答No.1

ベストアンサー率 50% (1/2)

直接ファイルのURLからダウンロード処理をすれば、わざわざダイアログを開かなくても簡単な気がしますが。

ファイルのダウンロードの方法について詳しく解説してあるサイトがありましたのでこちらを参考にされてはいかがですか。
補足コメント
HowAmIDoing

お礼率 64% (16/25)

仕組みは良く分かりませんが、
PHP上でフィルターをかけて?
Javascriptでダウンロード?するみたいです。

そのため、直接ファイルのダウンロードをしようにも
URLが分からず、上手くいかない状況です。
(たぶん、URLをクリックしたら「保存しますか?」というダイアログが出るのが
 最適なんだと思います)

参考リンクありがとうございます。勉強します。
投稿日時:2014/09/05 17:04
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ