• ベストアンサー

VBAのことについて教えてください。 困ってます。

VBAのことについて教えてください。 困ってます。 <p id="petaButton" class="hidetxt"><a href="/p/addPetaComplete.do?petaId=28c3f72d545d84dd6e9cf41465e2a543&targetAmebaId=tomo-favorite">移動</a></p> 上の部分をクリックしたいのですがnameやvalueがないのでどのようにすればいいのか困っています。 教えてください。よろしくおねがいいたします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.3

そういえばidはpタグでした。 IE限定のコードですが、以下のようになります。 Dim DOC, ANC Set DOC = objIE.document For Each ANC In DOC.getElementByid("petaButton").children     If ANC.tagName = "A" Then '★         If ANC.id = "" Then             ANC.id = ANC.uniqueId         End If         DOC.all(ANC.id).click         Exit For     End If Next ★子のタグがアンカー1個しかないから、確かめなくても よいかもしれません。

one-piece-sangi
質問者

補足

ここまでしていただいてありがとうございます。 Dim DOC, ANC Set DOC = objIE.document For Each ANC In DOC.getElementByid("petaButton").children     If ANC.tagName = "A" Then '★         If ANC.id = "" Then             ANC.id = ANC.uniqueId         End If         DOC.all(ANC.id).click         Exit For     End If Next 上のプログラムを試してみましたがこれもクリックされませんでした。 <p id="petaButton" class="hidetxt"><a href="/p/addPetaComplete.do?petaId=9400af52f30dd0c5466c13c24d0ae715&targetAmebaId=flanceusagi">移動</a></p> このHTMLの上に <div id="flashContent" class="piyo"> がありました。 もしかするとflashを使ったボタンなのでクリックできないのかもしれません。 ちょっといろいろ調べて考えてみたいと思います。

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

IEですね。 こんな感じでいかがでしょう。 objIE.document.getElementById("petaButton").fireEvent("onclick")

one-piece-sangi
質問者

補足

すいません。objIE.document.getElementById("petaButton").fireEvent("onclick")では クリックできませんでした。 申し訳ありませんが、他の方法はありませんでしょうか?

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

なんかカテゴリが違うような・・・ HTML上のアンカーをクリックしたように操作する VBAが組みたいと言うことでしょうか? 前提として、VBAからブラウザを起動した場合に 限られますが、方法をご存知ですか? 全く単独で起動したブラウザの特定アンカーを 操作することはできません。(VBAでなくても) ついでに言うと、IEとそれ以外ではアンカーの クリックイベントを発生させる方法が違います。

one-piece-sangi
質問者

補足

質問の補足ですが、objIE.documentなどを使ってVBAからブラウザを起動し、上に書いてあるHTMLの場所にボタンがあるのでそれをクリックしたいです。