前提・実現したいこと
Excel(Office 365)のVBAからIE11を操作し、getElementsByClassNameを使って同じクラス名を持つ要素がいくつあるか数えたいのですが、getElementsByClassNameの部分でエラーとなり進むことができません。
発生している問題・エラーメッセージ
実行時エラー '438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
該当のソースコード
参照設定でMicrosoft Scripting Runtime、Microsoft Internet Controls、Microsoft HTML Object Libraryをチェック済み
Private Sub CountClass() Dim IEobj As New InternetExplorerMedium IEobj.Navigate URL Call Util.WaitingForLoad(IEobj)'IEの読み込みを待つ関数を呼んで少し待ちます Dim myObj As Object Dim Counter As Integer For Each myObj In IEobj.Document.getElementsByClassName("TestClass")'ここの初回でエラーになります Counter = Counter + 1 Next End Sub
試したこと
・以前もExcel(Office 365)とIE11を使って似たツールを作ったことがあり、そちらは現状でも動いているので、URL以外を動いているツールと同じコード・参照設定にしてみて試したのですが、同じエラーが起き動きません
・サイト上に“TestClass”のクラスが間違いなく1つ以上あることの確認
・検索をしてgetElementsの「s」が抜けていないか、ClassNameはHTML Collectionであることに留意するなど見つけましたが、特に問題ないように思います
・IEの読み込み時間を長めにとり、確実に表示されてから実行しても同じエラーになります
・getElementById、getElementsByTagNameはなぜか機能します。
申し訳ないのですが、ご助力ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/25 00:07