• 締切済み

【VBAでキーボード操作する方法について】

【VBAでキーボード操作する方法について】 ボタンをクリックしたら、とあるサイトが自動的に検索できるツールを作成しておりますが、私が対象としているとあるサイトのsubmitボタンにname属性が指定されておりません。どうにかしてEnterキーを押したときと同じ動作になるようにしたいのですが、VBAでキーボードを操作することは可能なのでしょうか。 以下のソースはコマンドボタン2をクリックするとGoogleが立ち上がり、自動的に検索条件に"教えてGoo"と入力し、検索ボタンを押下してくれます。 ですが、これは、検索ボタンに"btnG"というname属性が指定されていたから可能であり、私が対象としているサイトではGoogleのようにsubmitボタンにはname属性は指定されておりません。 どうにかして自動的にEnterキーを押す(と同等な)ようなコードを記述することができないのでしょうか。 どなたか、お助けください。 Private Sub CommandButton2_Click() 'IEオブジェクト宣言 Dim objIE As Object 'IEオブジェクト作成 Set objIE = CreateObject("internetExplorer.application") '最前面に表示 objIE.Visible = True '対象URLへ移動 objIE.Navigate "http://www.google.co.jp/" '表示終了まで待つ Do While objIE.Busy = True DoEvents Loop '検索条件を指定 objIE.document.all.q.Value = "教えてGoo" 'ボタンを押してみる objIE.document.all.btnG.Click End Sub

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

>ボタンを押してみる >objIE.document.all.btnG.Click の代わりに document.forms(0).submit() または document.forms(0).elements(3).click() または jdocument.getElementsByTagName('input')(4).click()

AngelAngel07
質問者

補足

ありがとうございます。 助かりました。 もう一つ質問しても良いでしょうか? 一度submitした後、もう一度検索条件を指定すると 実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。 が発生してしまいます。 具体的には、上記ソースの最後 >ボタンを押してみる >objIE.document.all.btnG.Click の代りに↓を追加しました。 objIE.document.forms(0).submit '表示終了まで待つ Do While objIE.Busy = True DoEvents Loop '最前面に表示 objIE.document.all.q.Value = "教えてGoo" objIE.document.forms(0).submit デバッグしたところ、 objIE.document.all.q.Value = "教えてGoo" でエラーが発生しました。 原因は何でしょうか?

関連するQ&A