人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBでIEを操作することについての質問です。 Yahoo の検索キーワードを入れて"検索"をクリックするだけなのですがどうしても出来ません。 以下はエラーメッセージとコードです。最後のクリックが動きません。

実行時エラー'91';
オブジェクト変数またはWithブロック変数が設定されていません。

Dim objIE As Object 'IEオブジェクト参照用
Dim time2 As Date '2秒待ちに使う。
Dim strNAME As String '名前の入力

strNAME = InputBox("キーワード?", "", "キーワード・テスト")

'IEを起動する
Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
objIE.Visible = True
objIE.Navigate2 "http://www.yahoo.co.jp/"

time2 = DateAdd("s", 2, Now()) '2秒後を計算する
Do While True '無限ループ
DoEvents
If time2 < Now() Then Exit Do '2秒後に抜ける
Loop

objIE.document.All("p").Value = strNAME
objIE.document.All("search").Click



●質問者: honcar
●カテゴリ:コンピュータ インターネット
✍キーワード:ALL application as Click EXIT
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● KirakiraHikaru
●100ポイント ベストアンサー

ちょっと簡単に見てみただけなので、正しいかわかりませんが、

objIE.document.All("st").Click

とする必要があるのではないでしょうか?


d.getElementById('sbox').innerHTML='<a id=mk href="/r/ot" title="Yahoo! Search">
</a>
<form id=s class=v1 name=sf1 action="http://search.yahoo.co.jp/search">
<fieldset id=fs><div id=v>
<span id=c>検索メニュー:</span>
<a id=v1 class=h onClick="t(this);return false" href="/r/wes" title="ウェブ"><b></b>ウェブ</a>
<span class=sep>-</span><a id=v2 class=o onClick="t(this);return false" href="/r/dis" title="登録サイト"><b></b>登録サイト</a>
<span class=sep>-</span><a id=v3 class=o onClick="t(this);return false" href="/r/ims" title="画像"><b></b>画像</a>
<span class=sep>-</span><a id=v4 class=o onClick="t(this);return false" href="/r/vis" title="動画"><b></b>動画</a>
<span class=sep>-</span><a id=v5 class=o onClick="t(this);return false" href="/r/bls" title="ブログ"><b></b>ブログ</a>
<span class=sep>-</span><a id=v6 class=o onClick="t(this);return false" href="/r/dics" title="辞書"><b></b>辞書</a>
<span class=sep>-</span><a id=v7 class=o onClick="t(this);return false" href="/r/chs" title="知恵袋"><b></b>知恵袋</a><span class=sep>-</span><a id=v8 class=o onClick="t(this);return false" href="/r/ars" title="エリア"><b></b>エリア</a><span class=sep>-</span><a id=v9 class=o onClick="t(this);return false" href="/r/prs" title="商品"><b></b>商品</a></div><div id=ss><span id=sw class=f><label id=sb for=fp class=np>検索:</label></span><span id=ip class=f><input name=p id=fp type=text></span><span id=sn class=f>
<input type=image id=st src="http://i.yimg.jp/images/top/searchbox/s_btn_off.gif" alt="検索" onMouseOver="this.src=\'http://img.yahoo.co.jp/images/top/searchbox/s_btn_on.gif\';" onMouseOut="this.src=\'http://img.yahoo.co.jp/images/top/searchbox/s_btn_off.gif\';" border=0>
</span>
<span id=ld class=f>
<a href=/r/weo>検索オプション</a></span><input name=fr type=hidden value="top_v2"><input name=tid type=hidden value="top_v2"><input type=hidden name=ei value="euc-jp"><span id=stag class=f></span></div></fieldset></form>';

Yahooのトップページのソースを見ると、

というJavaScriptによって、

ページ表示時にFormの内容が書き換えられているので、

検索ボタンはname=searchからid=stに置き換わっています。

ですので、 objIE.document.All("search")ではオブジェクトが存在しないので、

実行時エラー'91';
オブジェクト変数またはWithブロック変数が設定されていません。

となってしまうのだと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ