質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1159閲覧

VBAでyahooの検索ボタンを押すコードを実行しても検索結果画面ではない画面に飛んでしまう

aomaruyahhoi

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/01/02 14:12

前提・実現したいこと

ExcelVBA練習中の者です。
以下のコードでyahoo検索で検索結果ページを表示させる練習をしているのですが、 検索ボタンのClass名が違うのか、どうにも上手くいきません。
エラーにはならないのですが、白っぽい「今検索されているワード」のようなページに飛ばされてしまいます。
識者様、どうかお力添えをお願い申し上げます。

発生している問題・エラーメッセージ

検索結果画面ではなく「今検索されているワード」のページに飛んでしまい、検索結果が得られない

該当のソースコード

ExcelVBA

1Dim keyword As String 2keyword = InputBox("キーワードを入力してください") 3 4Dim ie As InternetExplorer 5Set ie = New InternetExplorer 6 7ie.Visible = True 8ie.navigate "https://www.yahoo.co.jp/" 9 10Do While ie.Busy = True Or ie.readyState < READYSTATE_COMPLETE 11DoEvents 12Loop 13 14Dim htmlDoc As HTMLDocument 15Set htmlDoc = ie.document 16 17With htmlDoc 18.getElementById("p").Value = keyword 19.getElementsByClassName("PHOgFibMkQJ6zcDBLbga8")(0).Click 20’↑ここが実行されるとyahooの「今検索されているワード」のページに飛び、検索結果ページにならない 21End With 22Do While ie.Busy = True Or ie.readyState < READYSTATE_COMPLETE 23DoEvents 24Loop 25End Sub

試したこと

①.getElementsByclassNameを「"_3s3YPSCNUcgAFkPwVeRyfT"」に変更
②同様に"_63Ie6douiF2dG_ihlFTen rapid-noclick-resp cl-noclick-log"」に変更
どちらもやはり検索結果は得られず「今検索されているワード」のページに飛びます。

補足情報(FW/ツールのバージョンなど)

Windows10、Excel365

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こちらの環境(Windows10-IE11)では、以下でうまく動作しました。

VBA

1With htmlDoc 2 .getElementById("p").Value = keyword 3 '.getElementsByClassName("PHOgFibMkQJ6zcDBLbga8")(0).Click 4 '↑ここが実行されるとyahooの「今検索されているワード」のページに飛び、検索結果ページにならない 5 .forms(0).submit 6End With

投稿2022/01/03 03:29

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aomaruyahhoi

2022/01/04 14:47

ありがとうございます!難しいですが、submitメソッドを知らなかったので一つ大きな勉強になりました。助かりました!
guest

0

Yahoo!知恵袋 に類似質問がありました。こちらが参考になるかもしれません。

■ yahoo!Japanの検索窓のIDが分かりません - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12215678152

ちなみに、Yahoo のホームページを確認してみましたが "p"id ではなく name のようでした。

投稿2022/01/02 15:19

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aomaruyahhoi

2022/01/04 14:44

ありがとうございます!こちらのページのコードを丸写ししたら動いたので、自分のコードと見比べてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問