14

これは、スタックオーバーフローに関する私の最初の質問です!

この問題の解決策をしばらく探していましたが、何の助けも見つかりませんでした。検索で間違ったキーワードを使用しているだけかもしれませんが、今のところうまくいきません。質問は次のとおりです。

VBA で、Internet Explorer のファイル ダウンロード ダイアログから [開く] オプションを選択するにはどうすればよいですか?

さらに明確にするために、ファイルがダウンロードされたときに IE9 の画面の下部にポップアップする黄橙色のバーについて話しています。

Internet Explorer を使用して Web から数百の PDF をダウンロードするために VBA 自動化を行っていますが、実際の PDF に到達する前に .fdf ファイルを開く必要がある中間ステップがあります。そのため、自動化の次のステップに進むことができるように、まず「開く」オプションを選択する必要があります。前に言ったように、私は多くの検索を行ってきましたが、これまでのところ運がありませんでした.

SendKeys打撃がうまくいくことを期待して使ってみましEnterたが、それはうまくいかなかった最後の溝の努力でした.

助けてくれてありがとう!

4

3 に答える 3

4

ここではこれについて詳しく説明しました。

トピック: VBA/VB.Net/VB6 – IE ダウンロード ウィンドウの [開く/保存/キャンセル] ボタンをクリック – パート I

リンク: http://www.siddharthrout.com/2011/10/23/vbavb-netvb6click-opensavecancel-button-on-ie-download-window/


編集 (IMP) IE 9 を使用している場合は、パート 2 を読むことを忘れないでください。これには、IE 9 ダウンロード ウィンドウのウィンドウ構造が含まれています。


トピック: VBA/VB.Net/VB6 – IE ダウンロード ウィンドウの [開く/保存/キャンセル] ボタンをクリック – パート II

リンク: http://www.siddharthrout.com/2012/02/02/vbavb-netvb6click-opensavecancel-button-on-ie-download-window-part-ii/

上記のリンクでは、API を使用して目的を達成する方法について説明しています。

最初のリンクから...

あなたと私のように、私たちも名前を持っています。同様に、ウィンドウには「ハンドル」(hWnd)、クラスなどがあります。hWnd が何であるかがわかれば、そのウィンドウを操作するのは簡単です。

Findwindow API は、この場合、クラス名とウィンドウのキャプション (「ファイルのダウンロード」) を使用して、特定のウィンドウの hWnd を見つけます。「開く」、「保存」、「キャンセル」ボタンはそれ自体がウィンドウですが、メインウィンドウである「ファイルのダウンロード」の子ウィンドウです。つまり、それらのそれぞれにも hWnd があります:) 子ウィンドウを見つけるには、FindWindow を使用せず、FindWindowEx を使用します。「開く」、「保存」、「キャンセル」の 3 つのボタンはすべて、「ボタン」という同じクラスを持ちます。

于 2012-05-01T16:37:26.847 に答える
1

ショートカット キーをアプリケーションに送信しました。ここでは IE11 用です。申し訳ありませんが、IE9 でテストできませんでした。Altを押したままにすると、IE11 のようにコンボのもう 1 つのキーが表示される場合があります。

注: マシンで IE がアクティブ ウィンドウでない場合、コードは期待どおりに実行されないため、デバッグ モードでは動作しません。

  • ショートカットキー: Alt+O
  • VBA:Application.SendKeys "%{O}"
于 2016-10-12T22:16:24.380 に答える