- ベストアンサー
VBAでIEを操作して複数ページのタイトルを抜き出す方法
- VBAを使用してInternetExplorerを操作し、複数のページからタイトルを抜き出す方法について質問があります。1ページ目の「詳細を見る」をクリックして2ページ目のタイトルを取得し、1ページ目に戻り、次の「詳細を見る」をクリックして2ページ目のタイトルを取得したいと思っていますが、実行するとエラーが発生し、2回目以降のタイトルを取得できません。どのようにすればいいでしょうか?
- VBAを使用してInternetExplorerを操作し、複数のページからタイトルを抜き出す方法について教えてください。1ページ目のリンクをクリックしてタイトルを取得し、1ページ目に戻り、次のリンクをクリックしてタイトルを取得する処理を繰り返したいのですが、2回目以降の処理でエラーが発生してしまいます。解決策を教えてください。
- VBAでInternetExplorerを操作して、複数のページからタイトルを抜き出したいのですが、1ページ目のリンクをクリックして2ページ目のタイトルを取得し、1ページ目に戻り、次のリンクをクリックして2ページ目のタイトルを取得する処理を繰り返すという操作を行いたいです。しかし、2回目以降の処理でエラーが発生してしまいます。どのように修正すればいいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>No.1 この回答へのお礼 aタグをLoopにかけてみました。 Dim i As Long With objIE For i = 0 To .document.all.tags("a").Length - 1 If .document.all.tags("a")(i).innerText = "詳細を見る" Then .document.all.tags("a")(i).Click Call iewait Debug.Print i & ":" & .LocationName .GoBack Call iewait End If Next i End With
その他の回答 (2)
- aoyama984
- ベストアンサー率45% (253/561)
myCnt1 = 0 myCnt2 = 0 Do ____For Each myObj In objIE.Document.all.tags("a") ________If myObj.outerText = "詳細を見る" Then ____________myCnt2 = myCnt2 + 1 ____________If myCnt2 > myCnt1 Then ________________myCnt1 = myCnt2 ________________myCnt2 = 0 ________________myObj.Click ________________Call iewait ________________objIE.GoBack ________________Call iewait ________________Exit For ____________End If ________End If ____Next Loop 終了条件が足りないのでループしてますが 消えてしまうなら もう一度取得しなおす 同じものを処理しないように カウンターで判断 しています
お礼
カウンターを設けるのですね
- xls88
- ベストアンサー率56% (669/1189)
"詳細を見る"をClickしなくても取れるようです。 Dim txt1 As String, txt2 As String For Each myObj In objIE.document.all.tags("table") If myObj.className = "listSummary" Then txt1 = myObj.all.tags("div")(1).innerText txt2 = myObj.all.tags("a")(1).innerText Debug.Print txt1 & "/" & txt2 End If Next
お礼
やってみたら取れました。 ちなみに今回はこの方法で取得できたからいいのですが、 私の質問文のように、次のページへ行って戻って・・・をしたい場合は、 やはり無理ってことでしょうか?
お礼
For Eachではなくfornextでループしちゃえばいいのですね。 うまく出来ました。 有難うございます。