- ベストアンサー
VBAのことについて教えてください。 困ってます。
VBAのことについて教えてください。 困ってます。 <p id="petaButton" class="hidetxt"><a href="/p/addPetaComplete.do?petaId=28c3f72d545d84dd6e9cf41465e2a543&targetAmebaId=tomo-favorite">移動</a></p> 上の部分をクリックしたいのですがnameやvalueがないのでどのようにすればいいのか困っています。 教えてください。よろしくおねがいいたします。
- みんなの回答 (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個しかないから、確かめなくても よいかもしれません。
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1416)
IEですね。 こんな感じでいかがでしょう。 objIE.document.getElementById("petaButton").fireEvent("onclick")
補足
すいません。objIE.document.getElementById("petaButton").fireEvent("onclick")では クリックできませんでした。 申し訳ありませんが、他の方法はありませんでしょうか?
- nda23
- ベストアンサー率54% (777/1416)
なんかカテゴリが違うような・・・ HTML上のアンカーをクリックしたように操作する VBAが組みたいと言うことでしょうか? 前提として、VBAからブラウザを起動した場合に 限られますが、方法をご存知ですか? 全く単独で起動したブラウザの特定アンカーを 操作することはできません。(VBAでなくても) ついでに言うと、IEとそれ以外ではアンカーの クリックイベントを発生させる方法が違います。
補足
質問の補足ですが、objIE.documentなどを使ってVBAからブラウザを起動し、上に書いてあるHTMLの場所にボタンがあるのでそれをクリックしたいです。
補足
ここまでしていただいてありがとうございます。 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を使ったボタンなのでクリックできないのかもしれません。 ちょっといろいろ調べて考えてみたいと思います。