• ベストアンサー

VBAからIEを操作する時のウィンドウの選択の仕方がわかりません

BLUEPIXYの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ウインドウタイトルで表示される文字列がわかっていれば dim ws set ws = CreateObject("WScript.Shell") ws.AppActivate("タイトル文字列") で指定したウィンドウをアクティブにできます。 ウィンドウをアクティブにできれば、 Sendkeys ができます。 IEオブジェクトを作って起動しているのだったら、 状況によって IEオブジェクトから内容を引っ張ってこれるような気がしますが・

korn333
質問者

お礼

なるほど、タイトル文字列からの指定も出来るのですね。ありがとうございます!

関連するQ&A

  • VBAでIEを操作したいです。

    VBAでIEを操作したいです。 エクセルでデータ管理をしております。 VBA・マクロ等を使用して、ウェブページの入力フォームに自動で入力、ウェブページの結果を再度エクセルに返すことはできますでしょうか? こちらがサイトになります。 モノレート http://mnrate.com/ こちらのサイトはアマゾンの商品の年間の価格推移を調べることができます。 ここに商品の「JANコード」(13ケタの商品ごとについているバーコード)を入力して、「グラフを見る」というボタンを押すと表示されます。 例えば、「Smap!Tour!2002! [DVD] 」という商品が知りたいとします。 その場合「4988002446582」(DVDの商品コード)を入力して「グラフを見る」を押します。 その後、ページが切り替わって切り餅のページが表示されると思います。 表示されたページの商品写真の横にあるASIN:「B00008GEUD」 という数字と、表示されたアドレス「http://mnrate.com/item/aid/B00008GEUD」をエクセルに返したいです。 話を整理させていただきます。 現在エクセルでは、A1セル~A100セルに「JANコード」(13ケタの商品ごとについているバーコード)が入力されております。 そこで「マクロ実行」をします。 そうすると、自動でIEが起動してB1セル~B100セルに「ASINコード」(例:B00008GEUD)、C1セル~C100セルに「ハイパーリンク」(例:http://mnrate.com/item/aid/B00008GEUD) ※エクセルから直接ジャンプできるように青色になったもの を自動で入力。 すべて完了後、IEが閉じてその後MSGで「完了しました」と表示される。 「入門者のExcel VBA」という本と、「EXCEL VBAでIEを思いのままに操作できるプログラミング術」という本を買って、一通り読み切ったのですが難しくて困っております。 分かる方おられましたら宜しくお願い致します。 最初だけしかわかりませんでした。 'IEの起動 Set ie=CreateObject("InternetExplorer.Application") ie.Visible=True 'URLへジャンプ ie.Navigate "http://mnrate.com/"

  • VBAでIEを操作したいです。

    エクセルでデータ管理をしております。 VBA・マクロ等を使用して、ウェブページの入力フォームに自動で入力、ウェブページの結果を再度エクセルに返すことはできますでしょうか? こちらがサイトになります。 モノレート http://mnrate.com/ こちらのサイトはアマゾンの商品の年間の価格推移を調べることができます。 ここに商品の「JANコード」(13ケタの商品ごとについているバーコード)を入力して、「グラフを見る」というボタンを押すと表示されます。 例えば、「越後製菓 生一番 切り餅 1kg 」という商品が知りたいとします。 その場合「4901075022569」(切り餅の商品コード)を入力して「グラフを見る」を押します。 その後、ページが切り替わって切り餅のページが表示されると思います。 表示されたページの商品写真の横にあるASIN:「B00305HGSG」 という数字と、表示されたアドレス「http://mnrate.com/item/aid/B00305HGSG」をエクセルに返したいです。 話を整理させていただきます。 現在エクセルでは、A1セル~A100セルに「JANコード」(13ケタの商品ごとについているバーコード)が入力されております。 そこで「マクロ実行」をします。 そうすると、自動でIEが起動してB1セル~B100セルに「ASINコード」(例:B00305HGSG)、C1セル~C100セルに「ハイパーリンク」(例:http://mnrate.com/item/aid/B00305HGSG) ※エクセルから直接ジャンプできるように青色になったもの を自動で入力。 すべて完了後、IEが閉じてその後MSGで「完了しました」と表示される。 「入門者のExcel VBA」という本と、「EXCEL VBAでIEを思いのままに操作できるプログラミング術」という本を買って、一通り読み切ったのですが難しくて困っております。 分かる方おられましたら宜しくお願い致します。 最初だけしかわかりませんでした。 'IEの起動 Set ie=CreateObject("InternetExplorer.Application") ie.Visible=True 'URLへジャンプ ie.Navigate "http://mnrate.com/"

  • セキュリティ警告 エクセルVBAでIE操作

    こんにちは。 エクセルVBAでIEを操作してます。 その際、あるサイトのページを表示させようとすると 「セキュリティで保護されたWebページコンテンツのみを表示しますか?」 という警告するウィンドウが開いて、マクロが止まってしまいます。 何か良い対策はないでしょうか? 例えば、 1.このウィンドウを出さないようにプログラムする 2.このウィンドウに「はい」と「いいえ」ボタンがあるので、ウィンドウが出たときには常に「はい」を押す ちなみに、VBAではなく、手動でWebページにアクセスした場合はセキュリティ警告は表示されません。 不足した情報があれば教えてください。WebページのURLは会員制サイトのためここには書けません。 以上です。よろしくお願いします。 -- エクセル2003

  • IEでマクロみたいに操作できますか?

    ど素人で申し訳ありません ウエブページを操作してデータ入力をするのがめんどくさいので ウエブ上で操作したのと同じようなものをマクロ化できないかな と思っているのですが技術的に何がわかれば可能ですか? それともこういったこと事体無理なものなんでしょうか?

  • VBAによるIE操作について

    VBAによるIE操作について WEBブラウザの表示が完了しているかを確認する方法で以下を利用しています。 While objIE.Busy = True Or objIE.ReadyState <> 4: DoEvents: Wend Set objDoc = objIE.Document Do Until objDoc.ReadyState = "complete": DoEvents: Loop これで完了するまで処理を待つのですが、たまにブラウザが読み込み状態で固まってしまうことがあります。 F5で更新すると再度読み込みを行い、処理が正常に戻るのですが、固まってしまった場合のプログラムでの対処法はないでしょうか? 10秒間ループし続けたらsendkeysでF5を押下するなど色々考えたんですが、うまく表現できません>< どなたか分かる方ご教授お願いします!

  • VBAでアプリを自動操作したい

    ネットバンクなどの「httpsから始まる認証IEページ」をマクロで 操作したいと思っています。参考画像もあわせて載せておきます。 ログインや取引などをVBAで自動で操作したいのですが、画像の ようにツールなどのメニューがないためソースを取得することができません。 マウス操作を記憶させて自動的に動かす方法ではなくマクロで操作したい のですが、こういったページでもVBAで自動操作ができるものなのか教えて いただきたいと思います。

  • VBAの記述でフォームを操作させたい

    検索用フォームに検索結果表示用のボタンを配して利用しています。私のスキルのレベル問題から全てをマクロ操作で行える様、皆様からアドバイスを頂きまして使える様にはなりましたが。しかし、マクロのイベント欄の左に警告マークが表示(固定表示)されますので、早急に表示されない方法で使用したいと思っております。誠に勝手申しますがアドバイスを頂けませんでしょうか。 [操作したいフォームの構成とVBA記述で実現したいこと] 1、検索用フォームの構成 ・検索用フォーム名:検索Aフォーム ・検索結果フォーム表示用ボタン名:スタート ・コンボボックス名:コンボa、コンボb、コンボc ■やりたいこと 「検索Aフォームに配したコマンドボタンを使って」 a、検索Aフォームの最小化 b、結果Aフォームの表示 c、コンボボックスの入力表示を消去 2、検索結果フォームの構成 ・検索結果フォーム名:結果Aフォーム ・検索用フォーム表示用ボタン名:バック ※結果Aフォームの参照クエリ名:検索クエリ ■やりたいこと 「結果Aフォームに配したコマンドボタンを使って」 a、検索Aフォームを元のサイズに戻す b、結果Aフォームの最小化 既にマクロで作ったフォームのVBAを探してみましたが、マクロで作成したコマンドボタン名やコンボボックス名が見つけられない等を経験しました。自身でよく使うマクロの記述を教えていただければ、逆引き感覚で少しは早く覚えられるのではと思っています。以上ですが、宜しくお願いします。

  • EXCEL 2003におけるVBA,マクロ、改ページ操作と印刷設定について

    EXCEL 2003における VBA、マクロについての質問です。 CSVデータを読み込んで、1度マクロを作動させて、 再度違うCSVデータを取り込んで表示したいので、シートフォーマットプロシージャを設定しましたが、改ページの調整が、わからないのでページ操作が毎回おかしくなってしまいますので誰か教えていただけないでしょうか。 '####################################################### ' セルフォーマット プロシージャ '####################################################### Sub clearcell() Worksheets("Sheet1").Activate Selection.CurrentRegion.Select Selection.ClearContents Selection.Borders.LineStyle = xlLineStyleNone ★★ 'ページ操作についても、もとの状態にしたい' 'もしくは、1ページ何列で、何行までという指定が 'したいです。' ★★ End Sub 悩み(3) 印刷プロシージャにおいて、詳細な印刷設定が行いたい。 '####################################################### ' 印刷 プロシージャ '####################################################### Sub copypage() ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub このような、印刷はできましたが、 詳細を設定できる、プロシージャの例があれば、教えて いただければ幸いです。 よろしくお願いいたします。

  • VBAからWEB操作

    わかりにくい質問でしたらすみません。 VBAからWEB操作ができることを最近知り、 VBAで操作できる範囲のことから JavaScriptの勉強を始めています。 JavaScriptを使って他社が作ったWEBページの テキストボックスに文字を入れたり オプションボタンをチェックしたり するように作っています。 VBAの記述では以下のように使っています。 For Each obj inobjie.document.getelementsbytagname("input") if obj.type="radio" and obj.value="2" then obj.checked=true endif next ホームページからもらった記述を自分の環境に合わせたものなのですが getelementsbytagnameに"input"を入れると typeが取れるという感覚がなくて Nameが取れたりもしますし、何をどこまで取れるのかわからないのです。 "option"を入れたら 何が取れているんだろう?など… "a"だと、<a></a>の中身が取れているんだな…くらいまではなんとなくわかりました。 WEBページのソースを確認して、 テキストボックスの名前を調べたりしていますが Nameが設定されていなかったりもしますし そのときは、デバックでobjをウォッチしてひとつひとつ見たりしてるんですが こんな方法しかないのかなぁ?と思っています。 VBAを独学していたときは、勉強できるホームページがたくさんあったりしましたが VBAからのWEB操作については 独学ではこんな感じで進めるしかないのでしょうか 幅広い回答いただけるとうれしいです。 ※JavaScriptのほうにも、同じ趣旨の質問を書かせていただきました

  • vbaでIEの名前を付けて保存(A)をしたい

    VBA で IEの通知バー を操作したいです。 SendKeys で 通知バーの 保存(S) はできたのですが、 保存(s)の右隣の ▼ をクリックするとでてくる、 名前を付けて保存(A) の方法がわかりません。 どのようなキーをおくればよいのでしょうか。 他の質問をみると、SendKeysではなく ○○がよいですよ みたいな内容しか見つからず、 回答をみつけることができなくて困っておりますのでよろしくお願いいたします。