Explorer)の制御方法や自動操作についてのQ&A掲示板です。寛IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。こちらでしたら、正常に取得できますね。管理人様へメール報告しておきました。VBAマスター様ご連絡ありがとうございました。ご指摘どおり記述が間違っておりました。修正しましたので、ご報告させていただきます。変更ジャッカルのメッセージ(#14)への返事ありがとうございました。確かに、myDocに変更するとうまくいくね。違うバージョンを試してみるとか。別のPC(IE.11)で実行したところ、myDocに変更することで、3か所のMsgBoxが全て正常に表示されました。ご指導いただきまして、ありがとうございました。確かに、myDocに変更するとうまくいくね。IEバージョンの問題ではないか?違うバージョンを試してみるとか。64bitを利用しているとか。64bit版はエラーがおきやすいらしい。ご指摘ありがとうございました。このとおりにした上で、再度実行しました。結果は、2015年7月16日(木)15時53分に投稿した時と同じことになりました。・二つ目表示の直前で実行時エラー438。objDoc.......で停止します。elementNameには「classtest3」は入っていますが、onjDocは「Nothing」です。Controlesの他に必要なものがあったりしますでしょうか?ご面倒おかけしますが、よろしくお願いします。追加設定して実行しましたが、状況に変化はありませんでした。変更サブルーチンが間違っていますね。こちらでしたら、正常に取得できますね。管理人様へメール報告しておきました。設定したコードを張らないことには答えようがないはず。エラーからみてドキュメントが取得できずエラーが起きているんだろう。オブジェクトの取得もね。前回投稿したのと違うPCからですが、コードを付けます。http://www.vba-ie.net/element/tagvalue.htmlのサンプルをそのまま使ったもので、一切変更しておりません。Function今sample()を実行させますと、一つ目のMsgBoxが表示される前にストップします。エラー内容は変わりませんでした。今回は、elementNameには"nametest3"が入っています。(前回投稿時は、一つ目のMsgBoxは表示され(ただし内容は"")、二つ目の手前で止まったので、elementNameが"classtest3"になったんだと思います。「Nothing」になります。nametest3の間違いということか?これだけじゃ何が悪いのかなんて分からないぞ。設定したコードを張らないことには答えようがないはず。エラーからみてドキュメントが取得できずエラーが起きているんだろう。オブジェクトの取得もね。変更VBAマスターのメッセージ(#8)への返事いろいろやっています。今回は、tagValue用に掲示されているサンプルコードを変更なしで実行してみました。「実行時エラー438オブジェクトは、このプロパティまたはメソッドをサポートしていません。「Nothing」になります。どこに原因があるのかわからずにいます。止まり、objDocは「Nothing」となりました。"innerText")は第四引数のキーワードが設定されていないので、Nothingがでてるんでしょう。キーワードはouterHTMLでチェックしてるので、そのままid名でもキーワードとして利用すればいけると思いますよ。methodTypeを「id」でやる場合です。objIE.Document.getElementById(elementName)で止まり、objDocは「Nothing」となりました。(実行時エラー424,オブジェクトが必要です)ul内のテキストがほしいのですが、この中にキーワードとなりうる単語がないのです。言ってh1のテキストを使用するわけにもいかず。いう感じでやっていけばいいのですね?そんな感じであっています。今夜、早速取り組んでみます。お聞きしなくてはならないことがあるかもしれません。出来たら報告させていただきます。ありがとうございました。引き続きがんばってみます。がんばってみてください。変更VBAマスターのメッセージ(#4)への返事VBAマスター様ありがとうございます。理想としては、tagValueサブルーチンを利用するのがスマートに記述できる方法だと思います。ここの「一意のキーワード」を見つけれないがために断念したと思いますが、どこかしら違うところがあるはずなので、それを見つけたほうが早いかと思います。しても分からない場合は、以下のように個別の条件を追記すれば対応できるかと思います。Next今夜、早速取り組んでみます。お聞きしなくてはならないことがあるかもしれません。出来たら報告させていただきます。ありがとうございました。引き続きがんばってみます。Case構文で進めることとにします。Case構文の条件としているということは、1行目の場合は、objIE.Document.body.all.tags("ul")(3).innerText2行目の場合は、objIE.Document.body.all.tags("table")(3).all(61).innerText3行目の場合は、objIE.Document.body.all.tags("div")(10).innerTextのデータを抽出しているということであってますか?極論で言えば100行あったら100ケース記述する必要があると思いますが、ちょっとこれはどうかなと思います・・・あと、tags("ul")(3)tags("table")(3).all(61)tags("div")(10)も指定した要素に対して何番目の要素を抽出するかということですが、html文が変わると取得範囲も変わるのでオススメではないですね。2番目の(61)はよく数えていったなと思います。3))はオールマイティではないことが判りました。結局諦めてしまったわけなのです。いうことですが、サイトによって違う部分を変数扱いすることで大抵は解決します。理想としては、tagValueサブルーチンを利用するのがスマートに記述できる方法だと思います。WithNextおそらくここの「一意のキーワード」を見つけれないがために断念したと思いますが、どこかしら違うところがあるはずなので、それを見つけたほうが早いかと思います。しても分からない場合は、以下のように個別の条件を追記すれば対応できるかと思います。2)に記述されたobjIE.Document.body.all.tags("ul")(3).innerTextを利用しているということですが、こちらを当てはめたら、objIE.objIE.Document.body.all.tags("ul")(3).innerTextでobjIEオブジェクトが2つ続きます。