前提・実現したいこと
VBAを使って検索結果(例えば「東京都」と検索)のタイトルを一覧できるようなマクロを組もうとしています。最終的に検索結果のタイトルをエクセルシートに記入できるところまで完了させたいです。
発生している問題・エラーメッセージ
イミディエイトウィンドウに表示させることには成功しましたが、エクセルシートに記入することが出来ない状態です。恐らく下記のソースコードの変数「e」に検索結果の情報が代入されていると思うのですが、その情報を取り出してエクセルシートに記入することができません。(変数eはvariant型で宣言しています)例えば、eに入っている情報の一つをe(0)として1枚目のシートのセルA1に記入しようとすると、エラーメッセージ「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」が表示されます。
やりたいことのイメージとして、検索結果を一つのシートに一列(例えばA列)に表示できるようにしたいです。どのようにマクロを修正すればよいか、ご教示ください。
「VBA エラー 438「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」」
該当のソースコード
Sub sample() ' Seleniumのインスタンス生成(お決まり文言) Dim Driver As New Selenium.WebDriver Driver.Start "chrome" ' chrome使うからこれ ' 引数に開きたいURLを指定する(google) Driver.Get "https://www.google.com/?hl=ja" ' ①検索ボックスに「東京都」と入力 Driver.FindElementByCss("body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input").SendKeys "東京都" ' キーボードのキー操作するための準備 Dim sKey As New Selenium.Keys Driver.SendKeys (sKey.Enter) Dim i As Long For i = 1 To 5 ' <h3>タグを全部取得 Dim elms As WebElements Set elms = Driver.FindElementsByTag("h3") '中身を書き出し Dim e As Variant For Each e In elms Debug.Print e.Text 'イミディエイトウィンドウに書き出し Range("A1").Value = e(0) Next ' 「次へ」ボタンをクリックする Driver.FindElementByCss("#pnnext > span.SJajHc.NVbCr").Click Next ' 終了処理 Driver.Close Set Driver = Nothing End Sub ### 試したこと ここに問題に対して試したことを記載してください。 Range("A1").Value = e(0)のコードを Range("A1").Value = e.textと書くとエラーは表示されないが、A1のセルには最後の検索結果のみ表示されてしまう。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/28 13:32