• ベストアンサー

Webページ上のチェックボックスがある位置までタブ移動をしたいのですが

エクセル2003VBAで、IE6で表示されているWebページ上にあるチェックボックスにカーソルを移動したいのですが、 下記のコードでは、CheckBox.がエラーとなってしまいます。 \'チェックボックスにフォーカスが当たるまでタブ移動 While CheckBox.BoundValue = -1 SendKeys \"{tab}\", True Wend どういう風に修正したらよろしいでしょうか? ご存知の方よろしくお願いいたします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

違う方法ですが… どのようにして目的のページを表示させているのか不明ですが、IEのオブジェクトからHTMLドキュメントを取得して、目的のチェックボックスのidやタグを取得すれば可能です。 以下のサンプルではnameがcのINPUTを探していますが、対象にidがあれば直接取得できますし、なければFormから探しても良いし、直接タグの種類やタイプをチェックすることでもいけるでしょう。 (表示されているHTMLの内容によりますので、適宜設定してください) <サンプル> Sub test() Dim Browser1 As Object, elm As Object Dim url As String, i url = "XXXXXXXX" Set Browser1 = CreateObject("InternetExplorer.Application") Browser1.Navigate (url) Browser1.Visible = True Set elm = Browser1.document.getElementsByTagName("INPUT") For i = 0 To elm.Length - 1  If (elm(i).Name = "c") Then elm(i).Focus: Exit For Next i End Sub

ddtqp
質問者

お礼

回答ありがとうございます! ばっちりできました! Browser1.Visible = True の後に、タイマーがいるようですね。 以下のコードを継ぎ足したのですが、ちょっと重いのでもう少しあれこれ考えてみます。 ---------------------------------------------- '次の画面が表示されるまで待機 Const READYSTATE_COMPLETE As Long = 4 'IEオブジェクト状態(4=読み込み完了) While Browser1.ReadyState <> READYSTATE_COMPLETE While Browser1.Busy = True DoEvents Wend Wend ----------------------------------------------

関連するQ&A