• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでIE「ダウンロードの表示」生成)

Excel VBAでIE「ダウンロードの表示」生成

このQ&Aのポイント
  • Excel VBAでInternet Explorerの「ダウンロードの表示」のDialogウィンドウを表示させる方法について教えてください。
  • Excel VBAでInternet Explorerの「ダウンロードの表示」のDialogウィンドウを表示させる方法を教えてください。
  • Excel VBAでInternet Explorerの「ダウンロードの表示」を生成する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

SendKeysはアクティブウィンドーに対しての動作なので、電卓がアクティブになっている場合はキーストロークは電卓に送られます SendKeysで電卓を操作する例 http://www.atmarkit.co.jp/ait/articles/0709/12/news125_2.html IEの操作にかぎらず常にアクティブなウィンドーに対しての動作になります、複数のウィンド操作が必要な場合はSendKeysを実行する前に対象のウィンドをアクティブにする必要があります SendKeysの便利なところは VBS で IEを使用して楽天市場にログインしてみた(ken3memo 三流君) http://d.hatena.ne.jp/ken3memo/20110721/1311244241 ↑ この場合はページのHTMLソースからテキストボックスの名前(name)を調べておく必要が有る ただ、楽天のログインページは開いた時点でユーザー名の入力ボックスにターゲットが移っている状態なのでSendKeysを利用して ページが表示されたら SendKeys "ユーザー名" SendKeys "{TAB}" SendKeys "パスワード" SendKeys "{ENTER}" を実行するだけでログインが出来る、ページの体裁が変わると対応はできなくなるのが欠点ですが まあ、これは余分な説明だったけど

tfkae0124
質問者

お礼

 アクティブウィンドウに対しての操作は希望していなかったのですが、以後の回答がなく、一応SendKeysで操作もできるので、ベストアンサーとします。  他の回答も含め、忙しい中、回答くださった方に御礼申し上げます。

その他の回答 (3)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

No1です >他の作業に支障はないのでしょうか? ちょっと質問の意図が理解できないのですが? SendKeys "^j", True ↑ これはアクティブなウィンドーに対し[Ctrl]+Jのキーストロークを送っているだけ ダウンロードの表示なら SendKeys "%{X}N", True でも実行可能 アクティブウィンドーに対しての動作なので、他の作業には影響しないと思いますが、何が不安なのでしょうか?

tfkae0124
質問者

お礼

 回答ありがとうございます。  前の例・・・他の作業(別ウィンドウでIE操作)が可能なコード  という例がよくありませんでした。他の作業をIEでなく、メモ帳や電卓操作をマクロ実行中に行っていた場合、ActiveWindowがIEでなく、メモ帳や電卓に移った場合に支障をきたさないかを心配しております。  分かりにくい例や表現で申し訳ないです。

回答No.2

ご質問自体の操作の『「Send To Note」の2つあって』という所が、私は分かっていないのですが、PostMessage で、最初、Ctrl + Jを送った後に、その子Windowの中の操作と違いますか? そうしたら、二番目の Sleep 100 Ret = PostMessage(hWnd_objIE, WM_KEYUP, VK_CONTROL, 0) Ret = PostMessage(hWnd_objIE, WM_KEYUP, VK_J, 0) hWnd_objIEは、違っていると思います。もう一度、子Windowのハンドルを取得しなおさないといけないような気がしますね。その他にも、objIEのオブジェクトで、ExecWB定数でダウンロードする方法もあるような気がします。ただし、実行そのもののキーは、やっぱりWin32APIになるかもしれません。 想像で申し訳ありませんが、"SendKey"は、最上位にあるWindow操作する可能性が高いので、Windowを前面に持ってくるか、Windowのハンドルを取らないと、うまく行かない可能性がありますね。そうすると、結果的に、Win32APIに頼らざるを得ないはずです。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

SendKeysじゃなにか不都合があるのかな? Sub Test() Dim objIE As Object Dim hWnd_objIE As Long Dim Ret As Long 'IE起動 Set objIE= CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "https://www.google.co.jp/", navOpenInNewTab Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop SendKeys "^j", True End Sub

tfkae0124
質問者

お礼

ご回答ありがとうございます。  SendKeysで動きました。 自分としては、マクロ実行中でも他の作業(別WindowでIE操作など)が可能なコードを作りたいのですが、他の作業に支障はないのでしょうか?  私が調べたところでは、SendkeysはActiveWindowに対してキーストロークを渡すとありました。  http://officetanaka.net/excel/vba/statement/SendKeys.htm 他の作業に支障の出ないコードの例を教えてください。   API初心者で、質問ばかりで申し訳ありません。