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で出来ないでしょうか?
もしくは、もう少し分かりやすい方法は無いでしょうか。
(ファイルを保存しますか?のダイアログの「保存」をクリックして
所定の場所におき、開きたい。 そのまま開くのでもいいけれど、動作が不安定になるのは困る)
以上、よろしくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
直接ファイルのURLからダウンロード処理をすれば、わざわざダイアログを開かなくても簡単な気がしますが。
ファイルのダウンロードの方法について詳しく解説してあるサイトがありましたのでこちらを参考にされてはいかがですか。
参考URL:http://www.vba-ie.net/element/subroutine-filedow …
この回答への補足
仕組みは良く分かりませんが、
PHP上でフィルターをかけて?
Javascriptでダウンロード?するみたいです。
そのため、直接ファイルのダウンロードをしようにも
URLが分からず、上手くいかない状況です。
(たぶん、URLをクリックしたら「保存しますか?」というダイアログが出るのが
最適なんだと思います)
参考リンクありがとうございます。勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
IE以外でのfilter
-
DreamweaverでIE用Java反映され...
-
WordPress 制作環境はMac とWin...
-
C++Builderでの開発
-
WEBページからのメッセージをVBAで
-
Flashは2020年にサポートが終了...
-
XHTMLで書いて、XML宣言を書く...
-
動く顔文字はブラウザ選びますか?
-
VBA オブジェクトが必要です
-
主要ポータルサイトの多くがス...
-
Mac IE5でのCSs文字化け
-
textareaで行末にフォーカスを...
-
プルダウン(リストボックス)の...
-
AfterEffectsでイージーイーズ...
-
XMLを作成してもタグしか表示さ...
-
Mayaレンダリングの中断
-
掲示板からIPアドレスってど...
-
表示中のURLなどをバッチファイ...
-
pixivの消えないブックマークタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
Macで見るとページが崩れます。
-
VBA オブジェクトが必要です
-
doc As HTMLdocumentのコンパイ...
-
WindowsとMacでのChromeのスタ...
-
スマホでページ内リンクができない
-
プルダウン(リストボックス)の...
-
<IMG>のALIGN属性値「absmiddle...
-
WEBページからのメッセージをVBAで
-
HTML文書を上書き保存してもブ...
-
HTMLのバージョンの確認方法は?
-
cssレイアウトでSafariだけがど...
-
VBAでgetElementByTagName
-
DOCTYPE宣言はしなくていいの?
-
tabキーによるfocusの当たり方...
-
DeepLでエクセルのA列の英文の...
-
エクセルでURLからタイトルのみ...
-
ブラウザやOSによる表示の違...
-
webページの有効期限が切れてい...
-
CSSやJavaScriptのバージョン指定
おすすめ情報