- ベストアンサー
クリックできないエラーの理由と解決方法
- 質問者は、objIE.Document.all.tagsで要素を取得しようとしていますが、myObj.altプロパティを使用するとエラーが発生します。
- このエラーの理由は、要素の操作方法がサポートされていないためです。
- このエラーを解決するためには、別の方法を使用する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2 Douglas_ です。 >myObj.Clickをつかうべきとの事ですね。 ちょっとニュアンスが違うかも知れませんが、そもそも For Each myObj In objIE.Document.all.tags("input") If myObj.alt = "検索する" Then というのは、「objIE」の中で「<input> タグ」を巡回して、その「<input> タグ」の中で [alt 属性] が「"検索する"」になっている場合の処理です。 このとき、巡回する一つひとつの「<input> タグ」を「myObj」という名前のオブジェクト(正確には、Variant/Object/HTMLInputElement)に代入して巡回しておりますが、特に、今回のような場合は、「objIE.Document.all.tags("input").alt("検索する")」=「myObj」な訳ですから、敢えてエラーの出る言い回しをする方がどうかしている訳で、エラーの出る objIE.Document.all.tags("input").alt("検索する").Click というような言い回しをするのではなくて、「myObj」をそのまま使うのが、[For Each...Next ステートメント] の普通の使い方ではないかと存じます。 なお、書き忘れましたが、 myObj.Click した後は、 Exit For で [For Each...Next ステートメント] から抜けてください。 For Each myObj In objIE.Document.all.tags("input") If myObj.alt = "検索する" Then myObj.Click Exit For End If Next
その他の回答 (2)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>これを実行するとクリックできないのですがなぜでしょうか?あ 「なぜですか?」と言われても困ります。 objIE.Document.all.tags("input")(30).alt = "検索する" にはなりますが、 objIE.Document.all.tags("input") に「alt」というプロパティはありません。 せっかく For Each myObj ~~ If myObj.alt = "検索する" Then としているのですから、 objIE.Document.all.tags("input").alt("検索する").Click ではなくて、 myObj.Click ですね。
お礼
困らせてしまってごめんなさい泣 先の回答者さんと同じくmyObj.Clickをつかうべきとの事ですね。
- teketon
- ベストアンサー率65% (141/215)
> objIE.Document.all.tags("input").alt("検索する").Click ではなく、 > myObj.Click または > myObj.onClick じゃないですか? clickのプロパティはalt属性ではなく、inputタグが持っていると思います。
お礼
myObj.onclick はできませんでしたが myObj.Clickで出来ました!
お礼
回答ありがとうございました。