VBAでonclickイベントをクリックする方法は?

このQ&Aのポイント
  • VBAでonclickイベントでクリックすれば画面遷移するタグの記述方法がわかりません。aタグやinputタグのクリックは処理できますが、テーブルタグ内のonclickイベントのクリック方法が分かりません。
  • 具体的には、テーブルタグ内の「重要情報」というタブ風テーブルをクリックして「出品情報」というタブ風テーブルに移動し、再度「重要情報」に戻りたいです。
  • HTMLソースコードには、テーブルタグ内の各タブに対応するid属性とclass属性があり、onclick属性ではproductTableController.switchTab()メソッドを呼び出しています。
回答を見る
  • ベストアンサー

VBAでonclickイベントをクリックしたい

お世話になります。 XP/エクセル2003/IE8使用です。 テーブルタグ内で、onclickイベントでクリックすれば画面遷移するタグを VBAでクリックしたいのですが、記述方法がわかりません。 (IE起動などは大丈夫です。また、aタグやinputタグのクリックは処理できます) 具体的には、画像の「重要情報」(タブ風テーブル)から「出品情報」(タブ風テーブル)に移動し、再度、「重要情報」に戻ってきたいです。 HTMLソースは下記の通りです。 '---「重要情報」 <td id="basics" class="titletab-active" nowrap="nowrap" onclick="productTableController.switchTab('basics');return false;"> <span class="requiredAsterisk bold" id="tabAsterisk_basics"> <img src="https://images*略*.gif"></span> <span class="sprites" id="validation_error" title="" onclick="" style="display: none;"></span> <span class="sprites" id="ldr_warning" title="" onclick="" style="display: none;"></span> <span class="sprites" id="quarantine_warning" title="" onclick="" style="display: none;"></span> 重要情報</td> '---???(何の記述なのか私には不明) <td id="variation" class=" titletab-inactive hide" nowrap="nowrap" onclick="productTableController.switchTab('variation');return false;" style="display: none;"> <span class="sprites" id="validation_error" title="" onclick="" style="display: none"></span> <span class="sprites" id="ldr_warning" title="" onclick="" style="display: none"></span> <span class="sprites" id="quarantine_warning" title="" onclick="" style="display: none"></span> バリエーション</td> '---「出品情報」 <td id="offer" class="titletab-inactive" nowrap="nowrap" onclick="productTableController.switchTab('offer');return false;"> <span class="requiredAsterisk bold" id="tabAsterisk_offer"> <img src="https://images*略*.gif"></span> <span class="sprites" id="validation_error" title="" onclick="" style="display: none;"></span> <span class="sprites" id="ldr_warning" title="" onclick="" style="display: none;"></span> <span class="sprites" id="quarantine_warning" title="" onclick="" style="display: none;"></span> 出品情報</td> よろしくお願いします。

  • ken123
  • お礼率73% (299/409)

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

  • ベストアンサー
回答No.2

Dim ie : Set ie = CreateObject("InternetExplorer.Application") '目的のページに移動 ie.Document.Script.setTimeout("javascript:productTableController.switchTab('basics');return false;", 1) ie.Document.Script.setTimeout("javascript:productTableController.switchTab('offer');return false;", 1) ie.Document.Script.setTimeout("javascript:productTableController.switchTab('basics');return false;", 1) でいけるかと思います。 onClickで設定されているJavaScriptをsetTimeoutの引数に渡すだけでOKです。

ken123
質問者

お礼

hirakawa_kさま、早速のご回答ありがとうございました。 無事クリックできました!!! ありがとうございます 今後ともよろしくお願いします

その他の回答 (1)

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.1

>onclickイベントをクリックしたい その要素のclickメソッドを呼び出せばいいのでしょうけど、 部分的なHTMLソースを読み解くと言うのは、あまり誰もやりたくないのではないでしょうか。 「IEでクリックされた要素を調べる」 https://gist.github.com/kumatti1/5be491a6a75ee32457a7 みたいなコードでお調べになるとか。

ken123
質問者

お礼

kumatti1さま、早速のご回答ありがとうございました。 ご指摘いただきました件、 今後気をつけたいと思います。 ありがとうございました。 今後ともよろしくお願いします。

関連するQ&A

  • 表示と非表示

    下のような物があったときに、1を押したときに1が現れるのですが、続けて2を押したときに1と2が表示されてしまいます。 この時に、2を押したら、1を非表示にして2だけを表示したいのですが、可能でしょうか? よろしくお願い致します。 <HTML><HEAD><TITLE>test</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function apper(sLayers) { if (document.all) { if (document.all(sLayers).style.display=='inline') {  document.all(sLayers).style.display='none'; } else { document.all(sLayers).style.display='inline'; } } return (false); } // --> </SCRIPT> <style type="text/css"> span.hidden { position: relative; display: none } span.visiable { position: relative; display: inline } // --> </style></HEAD> <BODY> <a href="" onClick="return apper('1')">質問1</a><br> <a href="" onClick="return apper('2')">質問2</a><br> <a href="" onClick="return apper('3')">質問3</a><br> <span class="hidden" id="1">1<br></span> <span class="hidden" id="2">2<br></span> <span class="hidden" id="3">3<br></span> </BODY></HTML>

  • firefox でjavascript が無効

    下記のようにjavascriptで場面の切り替えを行ったのですが、firefox 3.6で見ると切り替え表示されません。他にlightbox やjquery-1.4.4.min.js などを使用していますが、取り除いて試したところやはり無効です。IEでは正常に機能します。なにかよい方法はないでしょうか? <script> function show1(){ content1.style.display="block"; content2.style.display="none"; } function show2(){ content1.style.display="none"; content2.style.display="block"; } </script> <style> #content1 { display:none; } #content2 { display:none; } </style> <ul class="u2" id="menu2"> <li><span onclick="show1();"><img src="images/menu1.jpg" alt="" border="0" /></span></li> <li><span onclick="show2();"><img src="images/menu2.jpg" alt="" border="0" /></span></li> </ul> <div id="content1"> aaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>  <div id="content2"> bbbbbbbbbbbbbbbbbbbbbbbbbb</div>

  • 隣のフレームの中のスタイルをいじる・・・なら指定はどこになる?

    <SPAN onclick="com1.style.display='block'"> <FONT SIZE="2">+</font> </span> <SPAN onclick="com1.style.display='none'"> <FONT SIZE="2">-</font> </span> をクリックすることにより <FONT size="2" color="red" id="com1_1" style={display:none;}> 文字列 </font> を表示させたりさせなかったりするスクリプトを 「left」のフレームで動かしています。 (スクリプトというには短いですが) これを「right」フレームにある文字、もしくは画像から onclickでコントロールする場合、 どのようにかけばよいのでしょうか? <SPAN onclick="com1.style.display='block'"> <FONT SIZE="2">+</font> </span> に何かを追加するといいようには見えるのですが。 それともそもそもできないのでしょうか?

  • JavaScriptによるonClickの使い方

    JavaScriptのonClickと関数の使い方で悩んでいます。 現在、divブロック表示非表示切り替えスクリプト:http://designlabolatory.blog16.fc2.com/blog-entry-139.htmlを参考に、ボタンを押して内容の表示・非表示を行いたいと思っています。 <form name="btnname"> <input type="button" name="inpname1" value="▼" onClick="openclosebtn1()"> <div id="openclose1" style="display:none;">  内容:1 </div> <input type="button" name="inpname2" value="▼" onClick="openclosebtn2()"> <div id="openclose2" style="display:none;">  内容:1 </div> <input type="button" name="inpname3" value="▼" onClick="openclosebtn3()"> <div id="openclose3" style="display:none;">  内容:1 </div> </form> 上記のように1つのformの中で、複数の項目のボタンを押して表示・非表示を行うのに、 function openclosebtn1(){ } function openclosebtn2(){ } function openclosebtn3(){ } 3つの関数にそれぞれbuttonのnameとdivのidを変えて書いています。 これを、1つの関数にうまくまとめたいのですが、いまいち方法がわかりません。 JavaScript初心者で、勉強不足なのは重々承知です。 手元にある本を読んでも書き方がわかりません。 わかる方アドバイスお願いします。

  • 画像をクリックして元に戻すには

    ホームページでよく見かけますが、写真等をクリックして別ページの大きな画像を表示させたあと、その画像をクリックすると前のページに戻るのをみかけます。 アンカーで元のファイル名を記述すればできますが、 特定のファイル名を指定することなく、 <INPUT TYPE="BUTTON" VALUE="前のページへ戻る" onClick="history.back();"> のようなものを、ボタンではなく画像をクリックしたときに機能するようにするには(img src=)で、どのように記述すればいいのでしょうか。 検索してみたのですが、なかなか見つけられませんのでよろしくお願いします。 次のような例を見つけましたが このTABLEを使わないで直接画像のみで指定したいのですが。 <script language="javascript"> function onPh(img) { myImg.src = img myTable1.style.display = "block" myTable2.style.display = "none" } function offPh() { myTable1.style.display = "none" myTable2.style.display = "block" } </script> ------- <TABLE border="3" table id="myTable1" width="50%" height="50%" onclick="offPh()" style="display:none;"> <tr> <td><img id="myImg" width="100%"></td> </tr> </TABLE> <table border="0" id="myTable2" style="display:block;"> <tr> <td><FONT color="#660066"><img src="hit3.jpg" width="80" height="60" onclick="onPh(this.src)"><br>

    • ベストアンサー
    • HTML
  • Fire Foxでロールオーバが表示できない

    こんばんは。質問させていただきます。 Fire Foxで、以下のJavaScript <script type="text/javascript"> <!-- function expand(id) { if (id.style.display == "none") { id.style.display = "";} else {id.style.display = "none";} window.event.cancelBubble = true;} // --> </script> を<HEAD>内に含むHTMLファイルを表示させたところ、以下のタグ <span class="list" onclick="expand(a);" style="cursor:crosshair;">●●●</span> の●●●の部分をクリックしても、下に表示されるべきリンクが表示されません。Internet Explorerではちゃんと表示されるのですが・・・。 上手く表示させることはできますか?どなたかご回答よろしくお願い致します。

  • リンクメニュー収納を2つ以上つくりたいのですが

    こんにちは。今、ホームページを作っています。javascriptで上手くいかない点があるので、質問させていただきます。回答よろしくお願い致します。 文字をクリックしたら下にメニューが表示されるようにしたく、<head>タグ内に <script type="text/javascript"> <!-- function expand(id) { if (id.style.display == "none") { id.style.display = "";} else {id.style.display = "none";} window.event.cancelBubble = true;} // --> </script> <body>タグ内に <span class="list" onclick="expand(a);" style="cursor:hand;">【項目1】</span><div id="a" style="display:none"> <a href="リンクしたいURL">内容1</a><br> <a href="リンクしたいURL">内容2</a><br> <a href="リンクしたいURL">内容3</a> </div> としています。これが1つだと問題なく表示されるのですが、この下に<span class="list" onclick="expand(a);" style="cursor:hand;">【項目2】</span><div id="a" style="display:none">…など2つ以上続けるとエラーが出てしまい上手く表示されません。 出来れば、 【項目1】   内容1    ←【項目1】をクリックすると表示   内容2    ←   内容3…   ← 【項目2】   内容4…   ←【項目2】をクリックすると表示 【項目3】   内容5…   ←【項目3】をクリックすると表示 ・・・となるようにしたいのですが…。このような場合にはどうしたら良いのでしょうか。どなたかご回答よろしくお願いいたします。

    • ベストアンサー
    • Java
  • ブログでonClickを2つ以上並べると動かない

    ブログ上のhtmlタグについて質問です。"onClick"のタグを1つ張ると動くのですが、2つ以上並べると動かなくなります。ブログはseesaaブログを使っています。 ↓動く <span onClick="document.all.item('moji2').style.visibility='visible'" onClick="document.all.item('moji2').style.visibility='hidden'"> クリックする文字 </span> <div ID="moji2" onClick="document.all.item('moji2').style.visibility='hidden'" style="visibility:hidden;"> この文字をクリックすると消えます </div> ↓動かない <span onClick="document.all.item('moji2').style.visibility='visible'" onClick="document.all.item('moji2').style.visibility='hidden'"> クリックする文字 </span> <div ID="moji2" onClick="document.all.item('moji2').style.visibility='hidden'" style="visibility:hidden;"> この文字をクリックすると消えます </div> <span onClick="document.all.item('moji2').style.visibility='visible'" onClick="document.all.item('moji2').style.visibility='hidden'"> クリックする文字 </span> <div ID="moji2" onClick="document.all.item('moji2').style.visibility='hidden'" style="visibility:hidden;"> この文字をクリックすると消えます </div> よろしくお願いします。

  • 変数をテキストボックスに入れるには?

    javascriptでゲームを作っています。 <dlv class='userinfo' style='display:none;'><span class='alias'></span></dlv> でユーザー名が拾えます。 <script type="text/javascript"> document.write("<dlv class='userinfo' style='display:none;'><span class='alias'></span>さん。ようこそ</dlv>"); </script> これで、「高橋さん。ようこそ」と表示されます。 次に、この「高橋」をフォームに入れることを考えました。 そこで下記のように作ったのですが、フォームの中は「undefined」になってしまいます。 <script type="text/javascript"> var abk; abk = document.write("<dlv class='userinfo' style='display:none;'><span class='alias'></span></dlv>"); document.getElementById('cla2').value = abk; </script> <input typy="text" id="cla2" value=“"> 次に下記のように作ったのですが、フォームの中は空です。 <script type="text/javascript"> var abk; abk = document.write("<dlv class='userinfo' style='display:none;'><span class='alias'></span></dlv>"); $("#text44").val(abk); </script> <input typy="text" id="text44" value=“"> どうすれば、 document.write("<dlv class='userinfo' style='display:none;'><span class='alias'></span></dlv>"); で表示される文字をフォームの中に記載することが可能になるでしようか?

  • getElementByIdではまってます・・・

    以下のソースを書いて、Firefoxで実行すると 検索ボタンをクリックするとテーブルが表示されるのですが すぐにもとに戻ってしまいます。 すいません。初心者です。 どなたかご教授ください。 言っている意味が分からなかったらすいません。 補足します。 HTMLです。 <td style="width:60px;" align="center"><input style="width:60px" type="submit" id="id" name="id" onclick="effectDetailWindow('detailWindow');" value="検索"></td> <div id="detailWindow" style="display:none;"> <table border="1" cellpadding="3" cellspacing="1" bordercolor="#000000" style="width:460px;"> <tr> <td style="width:80px;" class="table_head"> TEST1 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest1" value="{$form.searchtest1}"> </td> <td style="width:80px;" class="table_head"> TEST2 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest2" value="{$form.searchtest2}"> </td> </tr> </table> </div> JavaScriptです。 function effectDetailWindow(id) { var obj = document.getElementById(id); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; } }

専門家に質問してみよう