• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでIE操作メニュー選択完了まで待機したい)

VBAでIE操作メニュー選択完了まで待機したい

このQ&Aのポイント
  • VBAを利用してIEを操作するマクロを組んでいますが、プルダウンメニューの選択完了を待つ方法がわかりません。
  • プルダウンメニューの選択には一定時間待機させる方法を使用していますが、他にメニューのグレーアウトが終わるまで待つ方法はありませんか?
  • 試したこととして、プルダウンメニューが無効化されるまで待つ条件文を試しましたが、うまくいかず困っています。何か解決策はありますか?

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

  • ベストアンサー
回答No.2

---------------------------------------------------- Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 Loop Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 Loop ---------------------------------------------------- と待ってみるとどうか?

rept
質問者

お礼

ありがとうございます! 試してみます。 ちなみにですが、回避策として On Error ステートメントを入れて、無理やりですが今のところ応急処置ができています。 検索でたどり着いた方も見るので、お役に立てればと思い、僭越ながら下記記載します。 --------------- Hantei1 = 99 '特に数値に意味はないが、0以外の数字をあらかじめ代入 Do Until Hantei1 = 0 On Error Resume Next 'なぜか、On Error GoTo ラベル名 の形式だと高確率で失敗する Hantei1 = InStr(objIE.Document.getElementById("MenuName2").outerHTML, "disabled") On Error GoTo 0 'これを入れないと上の行でエラーが出たり出なかったりする。 DoEvents Loop --------------- ※念のため、変数Hantei1はLong型で宣言。 上記コードで何度か試しましたが、今のところ動いています。 ご提示いただいたコードも試してみます。

rept
質問者

補足

返信遅くなってすみません。 実際に試してみましたが、なぜか該当メニューがアクティブになる前にループを抜けてしまい、次の処理に移ってしまいました。 ただ、私が下記のお礼コメントに記載したOn Error処理で何とか動いているので、現状はこのまま利用しようと思います。 ありがとうございました。

その他の回答 (1)

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.1

周りの事をなにやら気にしているようですが、VBAとVB(Visual Basic)は別のものです。 わからないから仕方ないのかもしれませんが、私には自分が使う言語がなんだかも分かってないのは不思議です。 Excel使っているのか知りませんが、Office系のカテゴリにした方がまだ近いですよ。

rept
質問者

補足

質問文を読んでいただければわかると思いますが、使っている言語はVBAです。 VBAと言う項目が見当たらなかったので、一番近いと判断したこちらに書き込みました。 (他にも同様の質問者、多数いらしゃるのを習って) このまま回答が付かなければ質問削除してExcelに移そうと思っていました。 No.1さんの回答が付いたこの時点で仕様上、削除できなくなってしまいましたが・・・。 これも質問文に記載していますが、以降、回答内容を含まない書き込みはご遠慮ください。

関連するQ&A