• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba IE操作で こういう事ってできない?)

VBAでIEを操作して複数ページのタイトルを抜き出す方法

このQ&Aのポイント
  • VBAを使用してInternetExplorerを操作し、複数のページからタイトルを抜き出す方法について質問があります。1ページ目の「詳細を見る」をクリックして2ページ目のタイトルを取得し、1ページ目に戻り、次の「詳細を見る」をクリックして2ページ目のタイトルを取得したいと思っていますが、実行するとエラーが発生し、2回目以降のタイトルを取得できません。どのようにすればいいでしょうか?
  • VBAを使用してInternetExplorerを操作し、複数のページからタイトルを抜き出す方法について教えてください。1ページ目のリンクをクリックしてタイトルを取得し、1ページ目に戻り、次のリンクをクリックしてタイトルを取得する処理を繰り返したいのですが、2回目以降の処理でエラーが発生してしまいます。解決策を教えてください。
  • VBAでInternetExplorerを操作して、複数のページからタイトルを抜き出したいのですが、1ページ目のリンクをクリックして2ページ目のタイトルを取得し、1ページ目に戻り、次のリンクをクリックして2ページ目のタイトルを取得する処理を繰り返すという操作を行いたいです。しかし、2回目以降の処理でエラーが発生してしまいます。どのように修正すればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.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

mrihislkyg1
質問者

お礼

For Eachではなくfornextでループしちゃえばいいのですね。 うまく出来ました。 有難うございます。

その他の回答 (2)

  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.2

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 終了条件が足りないのでループしてますが 消えてしまうなら もう一度取得しなおす 同じものを処理しないように カウンターで判断 しています

mrihislkyg1
質問者

お礼

カウンターを設けるのですね

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

"詳細を見る"を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

mrihislkyg1
質問者

お礼

やってみたら取れました。 ちなみに今回はこの方法で取得できたからいいのですが、 私の質問文のように、次のページへ行って戻って・・・をしたい場合は、 やはり無理ってことでしょうか?

関連するQ&A

専門家に質問してみよう