下記の質問がきました。
<li class="mode"><a tabindex="2" href="javascript:void(0)" onClick="send()">返信</a></li> <li class="wmode" style="display:none;"><a tabindex="3" href="javascript:void(0);" onClick="Question();">質問</a></li> <li class="dmmode" style="display:none;"><a tabindex="4" href="javascript:void(0)" onClick="send()">送る</a></li>
>このようなコードがありまして、返信のJavascriptを作動させたいのですが
>"返信"と"送る"でonclickが同じせいなのかわからないのですが、うまく作動してくれません。
>
>わたしが書いたコードは
>
>objIE.document.Script.setTimeout "send()", 200 '返信
>
>このようにして記述しているのですがうまくいきません。
A の リンクをクリックみたいなので、
http://d.hatena.ne.jp/ken3memo/20100214/1266096020
では
ボタンのサンプルなのですが、
'htmlドキュメント allのから .tagsでButtonタグを抜き '.InnerTEXT値(ボタンの名称) が VBA解説 の オブジェクト を クリック(.Click)する Dim objButton As Object 'Buttonタグ格納用 For Each objButton In objIE.Document.all.tags("Button") 'Buttonのタグを.allから抜く If objButton.InnerTEXT = "VBA解説" Then '.InnerTEXT値(ボタンの名称) で判断する objButton.Click '見つけたButtonオブジェクト(ボタン)を.Clickクリックする Exit For '用が済んだので(見つかったので)ループを抜ける End If Next
今回は、A リンクのタグなので、
'htmlドキュメント allのから .tagsでAタグを抜き '.InnerTEXT値(リンク文字) が 送る の オブジェクト を クリック(.Click)する Dim objA As Object 'Aタグ格納用 For Each objA In objIE.Document.all.tags("A") 'Aのタグを.allから抜く MsgBox "確認用" & objA.InnerTEXT '確認できたら消す If objA.InnerTEXT = "送る" Then '.InnerTEXT値(リンクの名称) で判断する objA.Click '見つけたButtonオブジェクト(ボタン)を.Clickクリックする Exit For '用が済んだので(見つかったので)ループを抜ける End If Next
↑変数名をAにしか変えていませんが、こんな感じかなぁ。
※送る や 返信 に If objA.InnerTEXT = "送る" を 変更して使ってみてください。
あっ、最近書いたヤツだと、
http://d.hatena.ne.jp/ken3memo/20120407/1333765403
の
'↑上で見つけたIPAT 投票メニューから 情報メニュー を 押す 'Aのタグを集める .getElementsByTagName("A")を使用 Set objA = objIE.Document.getElementsByTagName("A") 'ループで頭から表示してみる For n = 0 To objA.Length - 1 '※.InnerHTMLじゃなくて、.OuterHTMLでAの全体を見る '情報メニューのリンクを探す、ソースの文字を探す If InStr(objA(n).OuterHTML, "情報メニュー") > 0 Then objA(n).Click 'クリックする Exit For 'ループを抜ける End If Next Set objA = Nothing 'オブジェクト変数解放
ですね、
.InnerTEXT じゃなって、
.OuterHTML で 探してますが、
リンク先の動画を見て、お好きな方で・・
解決の糸口となれば、幸いです。 三流プログラマー Ken3