• ベストアンサー

エクセルVBAでWEBの操作方法

エクセル2000です。 VBAでNavigateを使いWeb画面(イントラネット)を開き、 .Document.all.Item("Hoge****No").Value = Target.Text のような方法で入力を行い、 .Document.forms(0).submit で送信ボタンクリックして新たな画面を開くところまではできております。 次に、その結果表示された画面の、「顧客」という文字列(オンマウスで色がかわります。)をクリックするにはどのようなコードになるのでしょうか? HTMLはほとんどわかりませんが、Web画面のソースを覗いて見ると、 id="ApplicantButton" class="MnuSmall" onclick="ApplicantClick(this);" onmouseover="SmallOn(this);" onmouseout="SmallOff(this);">顧客</td></tr><tr><td width="20%">&nbsp;</td><td width="80%" というのがありましたのでこの部分だとは思うのですが、やりかたがわかりません。 よろしくおねがいします。  (o。_。)oペコッ

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

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

id="ApplicantButton"が使えるかも知れません。 .Document.getElementById("ApplicantButton").Click

merlionXX
質問者

お礼

xls88さま、先日はListboxのリストの数を取得する方法をありがとうございました。 今回もお助けいただき、感謝感激です。 .Document.getElementById("ApplicantButton").Click でうまくいきました! ありがとうございます。

その他の回答 (1)

  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.1

そこまでになるとExcelの管轄外だと思いますが。 Excelからはブラウザをキックするまででしょう。 呼び出したHTMLでは、既にonClickが定義されているので、ApplicantClickという関数でどういう処理が行われているかではないでしょうか。 呼び出したら自動でonClickの処理を呼び出したいのであれば、 BODYタグでonLoadでApplicantClickを呼び出すようにすれば良いのでは? ただ、HTML単体で呼び出したときには動かしたくないというのであれば、また別の工夫をしないと実現できないと思いますが。 少なくともExcelでどうこうできる部分ではないと思います。

merlionXX
質問者

お礼

ありがとうございます。

関連するQ&A

  • エクセルVBAでのWeb画面の操作方法について

    現在エクセルVBAでWeb画面(社内イントラネット)を、navigateを使って開くところまではできております。 しかし、開いた画面で、「イメージ」という個所をクリックさせる方法がわかりません。 HTMLはほとんどわからないのですが、ソースを見ると、多分このあたりだとおもいます。 <tr><td colspan="2">&nbsp;</td></tr><tr><td colspan="2" id="ImageButton" class="Button" onclick="toImage(this, 'INTRA');" onmouseover="BigOn(this);" onmouseout="BigOff(this);">イメージ</td></tr><tr><td colspan="2" id="KakoButton" class="Button" onclick="toKako(this, 'INTRA');" onmouseover="BigOn(this);" このうち、多分、onclick="toImage(this, 'INTRA');" を実行させればいいのではないかと想像します。 どのような記述になるのか、ご教示いただけましたら幸いです。

  • エクセルVBAでWEBの送信ボタンクリック

    エクセル2000です。 VBAでNavigateを使いWeb画面(イントラネット)を開き、エクセルのデータを入力し、イントラの送信ボタンを押して画面を先に進めるコードがあります。 余計な部分を省略して簡略化してますがこのような感じです。 Sub TEST01()   Dim tmp As String   On Error Resume Next   tmp = objIE.Name   If Err.Number <> 0 Then 'エラーならIEが起動していないので、起動する     Set objIE = CreateObject("InternetExplorer.Application")   End If   On Error GoTo 0   myData = Sheet1.Range("A1").Text   With objIE     .navigate "http://abcd.co.jp/abc/****/***/*****************/***""     .Visible = True     Do While .busy       DoEvents     Loop     .document.all.Item("ClientNo").Value = myData 'テキストボックスへ入力:Name属性で指定     Do While .busy ' = True 'オートコンプリートなどの機能が働く場合があるので、念のため待機       DoEvents     Loop     .document.forms(0).submit '送信ボタンクリック   End With End Sub 先日までは、順調に動いていました。 ところがイントラネットの仕様が若干かわったようで、エクセルのデータを入力するところまでは動きますが、そこから先に進みません。 手作業でエンターキーを押すと進むので、 .document.forms(0).submit '送信ボタンクリック の部分を SendKeys "{ENTER}" とごまかして、何とか進むことはできましたが、Sendkeyではなく本来の修正方法をご教示いただきたいのです。 HTMLはほとんどわかりませんが、ソースを表示させてみると以下の部分がそれらしく思われます。(送信ボタンにマウスを持ってくるとボタンの色が変わります) </strong></td></tr><tr><td width="38%"><input type="hidden" name="enableXuras" value="1"></td><td onclick="xcs0010SearchClick();" onmouseout="BigOff(this);" onmouseover="BigOn(this);" class="Button Command" width="10%">送信</td><td width="4%"></td><td onclick="ClearForm(document.frm);" onmouseout="BigOff(this);" onmouseover="BigOn(this);" class="Button Command" width="10%">クリア</td><td width="38%"></td></tr></table><br><div> なにとぞ、よろしくお願いいたします。  (o。_。)oペコッ

  • WEB制作に関する質問です。コンテンツをスライドに

    ボタンをクリックするとtableの部分を垂直方向にスライドさせて切り替えたいのですが なかなか、うまくいきません。 こんな感じかなと思って、つくったのですが、まったく作動しません。 何をどうすればいいか分かりません。 どなたか、教えて下さい。 javascriptは少し分かるぐらいです。 よろしくお願いします。 コードは↓ 下のクリック画像だけ指定してあります。 html <div id="main_left">  <h2>見出し</h2>  <img src="image/cicletop.jpg" width="33" height="33" /><!-- 上のクリックボタン -->  <div id="shuraider">   <table name="shuraid1" id="shuraid1">    <tr><td colspan="2">aaaaaa</td></tr>    <tr><td><img src="image/buttons_06.gif" width="56" height="57" /></td><td>aaaaaaaaaaaaaaaaa</td></tr>    <tr><td><img src="image/menu.gif" width="114" height="30" id="menu10" name="menu10" onmouseover="document.menu10.src='image/amenu.gif'" onmouseout="document.menu10.src='image/menu.gif'" onclick="document.menu10.src='image/amenu.gif'" /></td><td>aaaaaaaaaaaaaa</td></tr> </table> <table name="shuraid2" id="shuraid2"> <tr><td colspan="2">aaaaaa</td></tr> <tr><td><img src="image/buttons_06.gif" width="56" height="57" /></td><td>aaaaaaaaaaaaaaaaa</td></tr> <tr><td><img src="image/menu.gif" width="114" height="30" id="menu10" name="menu10" onmouseover="document.menu10.src='image/amenu.gif'" onmouseout="document.menu10.src='image/menu.gif'" onclick="document.menu10.src='image/amenu.gif'" /></td><td>aaaaaaaaaaaaaa</td></tr> </table> <table name="shuraid3" id="shuraid3"> <tr><td colspan="3">aaaaaa</td></tr> <tr><td><img src="image/buttons_06.gif" width="56" height="57" /></td><td>aaaaaaaaaaaaaaaaa</td></tr> <tr><td><img src="image/menu.gif" width="114" height="30" id="menu10" name="menu10" onmouseover="document.menu10.src='image/amenu.gif'" onmouseout="document.menu10.src='image/menu.gif'" onclick="document.menu10.src='image/amenu.gif'" /></td> <td>aaaaaaaaaaaaaa</td></tr> </table> <table name="shuraid4" id="shuraid4"> <tr><td colspan="2">aaaaaa</td></tr> <tr><td><img src="image/buttons_06.gif" width="56" height="57" /></td><td>aaaaaaaaaaaaaaaaa</tr> <tr><td><img src="image/menu.gif" width="114" height="30" id="menu10" name="menu10" onmouseover="document.menu10.src='image/amenu.gif'" onmouseout="document.menu10.src='image/menu.gif'" onclick="document.menu10.src='image/amenu.gif'" /></td> <td>aaaaaaaaaaaaaa</td></tr> </table> </div><!-- end shuraider --> <img src="image/ciclebottom.jpg" width="33" height="33" name="shuraid_botton" id="shuraid_botton" onclick="shuraido ()" /><!-- 下のクッリックボタンでここをクリックするとtableを切り替えたい --> </div><!-- end main_left --> ここからcss #main_left{ width: 339px; } #main_left h2{ font-size: 18px; font-weight: bold; color: #ffffff; width: 339px; line-height: 2em; letter-spacing: 1em; background-image: url(../image/h2.jpg); background-color: #0F9; margin: 0; } #shuraider{ width: 337px; height: 120px; overflow: hidden; } ここからjavascript var i=1; function shuraido(){ if(i==1){ document.src="shuraid2"; i=2; } else if(i==2){ document.src="shuraid3"; i=3; } else if(i==3){ document.src="shuraid4"; i=4; } else{ document.src="shuraid1"; i=1; } } </script>

  • テーブルセルの列での背景色の変更

    3行3列のtableで各セルにマウスカーソルをのせた時に そのセルの列すべての背景色を変えるJavaスクリプトを 作成したのですが、うまく動作しません。 どこか間違っているでしょうか。 (たとえば、2-2のセルにマウスカーソルをのせると  1-2、2-2、3-2のセルの背景色をかえるスクリプトです) ●Java function onColor(col) { document.all[col].bgColor = '#00ffff'; } function outColor(col) { document.all[col].bgColor = '#ffffff'; } ●HTML <TABLE BORDER="1" BGCOLOR="#ffffff" cellpadding="0" cellspacing="0"> <colgroup id="a1" span="1" width="25" align="center"> <colgroup id="a2" span="1" width="25" align="center"> <colgroup id="a3" span="1" width="25" align="center"> <tr align="center"> <td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">1-1</td> <td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">1-2</td> <td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">1-3</td> </tr> <tr align="center"> <td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">2-1</td> <td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">2-2</td> <td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">2-3</td> </tr> <tr align="center"> <td onMouseOver="javascript: onColor('a1');" onMouseOut="javascript: outColor('a1');">3-1</td> <td onMouseOver="javascript: onColor('a2');" onMouseOut="javascript: outColor('a2');">3-2</td> <td onMouseOver="javascript: onColor('a3');" onMouseOut="javascript: outColor('a3');">3-3</td> </tr> </TABLE>

  • 列もハイライト

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>ハイライト(JavaScript)</title> </head> <body> <script type="text/javascript"> <!-- function hightlight(target, color){ target.style.backgroundColor = color; } //--> </script> <table border="1" style="border-collapse:collapse"> <tr><th>氏名</th><th>日付</th></tr> <tr onmouseover="hightlight(this,'#00FFFF')" onmouseout="hightlight(this,'#FFFFFF')" > <td>生徒1</td><td>2005/04/01</td></tr> <tr onmouseover="hightlight(this,'#00FFFF')" onmouseout="hightlight(this,'#FFFFFF')" > <td>生徒2</td><td>2004/02/01</td></tr> <tr onmouseover="hightlight(this,'#00FFFF')" onmouseout="hightlight(this,'#FFFFFF')" > <td>生徒3</td><td>2004/10/01</td></tr> <tr onmouseover="hightlight(this,'#00FFFF')" onmouseout="hightlight(this,'#FFFFFF')" > <td>生徒4</td><td>2004/08/01</td></tr> <tr onmouseover="hightlight(this,'#00FFFF')" onmouseout="hightlight(this,'#FFFFFF')" > <td>生徒5</td><td>2005/06/01</td> </table> </body> </html> で行にハイライトを設定しているのですが、同時に列にも同じようにハイライトを設定したいと思っております。 どのように変更したらよいでしょうか? ご存知の方、宜しくお願いします。

  • onmouseoverを外部にまとめる

    お忙しいところすいません 以下のようなマウスオーバーで背景が変わるテーブルを制作してますが、長くなるので「onmouseover」等をまとめる方法があれば教えてください。 ■---元----------------------■ <head> </head> <body> <table> <tr> <tr> <td onmouseover="this.style.backgroundColor='#ffffcc';" onmouseout="this.style.backgroundColor='#68ceff'" bgcolor="#68ceff">リンク</td> </tr> <tr> <td onmouseover="this.style.backgroundColor='#ffffcc';" onmouseout="this.style.backgroundColor='#68ceff'" bgcolor="#68ceff">リンク</td> </tr> </table> </body> </html> ■---希望----------------------■ <head> <script language="JavaScript"> <!-- td#over { onmouseover="style.background='#ccccff'"; onmouseout="style.background='#68ceff'" } //--> </script> </head> <body> <table> <tr> <tr> <td id="over">リンク</td> </tr> <tr> <td id="over">リンク</td> </tr> </table> </body> </html> -------------------------------- CSSもJavaScript初心者ですので全く的外れな質問かもしれませんがよろしくお願いします。

  • VBAによるIE操作でgifをクリックする方法

    ボタンに書かれているソースは <!--▼ボタン---------------------------------------------------> <table width="800" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right" width="108"><input type="image" img src="http://www.aaaaa.co.jp/be/fli/image/bt_search.gif" width="108" height="19" border="0"></td> </tr> </table> <!--▲ボタン---------------------------------------> と言った感じです。nameも無く、altも分からず、どうクリックしたらいいでしょうか。 『objIE.Document.Links(i).Click』というのもダメでした。

  • テーブルリンクで別ウインドウで開くようにするには?

    <table> <tr> <td onClick="window.location.href='a.html'" onmouseover="this.style.backgroundColor='#80FFFF';" onmouseout="this.style.backgroundColor=''" STYLE="cursor:hand;">a</td> </table> このようにしてオンマウスでTD内の色を変え、TD全体でリンクさせる時、別ウインドウで開くにはどうしたらよいですか? それとも、テーブルリンクで別ウインドウで開く指定は出来ないんでしょうか? <table> <tr> <td onClick="window.location.href='a.html' XXXXX" onmouseover="this.style.backgroundColor='#80FFFF';" onmouseout="this.style.backgroundColor=''" STYLE="cursor:hand;">a</td> </table> XXXXXの部分にtarget='_blank'と入れてみたんですが、今度はリンクのアクションすらしなくなってしまいました。 よろしくお願いします。

  • 条件にあったテーブルのセルを数える

    テーブルを作り、それぞれのセルをonmouseoverすると背景が変わるようになっています。そして、背景が変わった後に、何個のセルの背景が変わったのかを知りたいのですが、どうもうまくいきません。alertで確認してもいつも「0」として出てきます。お手数ですが、ご指導お願いします。 <script type="text/javascript"> function bgSwap(TD) { if(window.event.shiftKey == true) { if(TD.style && TD.style.backgroundColor){ TD.style.backgroundColor = ''; } else{ TD.style.backgroundColor = '#000000'; } } } function sendToparent(){ var count=0; var i; var tdname = document.getElementById('F1table').getElementsByTagName('td'); for (i=0; i < tdname.length; i++) { if(tdname[i].style.backgroundColor == "#000000"){ count = count+1; }else { count = count; } } alert(count); } </script> <body> <input type='button' value='set' onclick='sendToparent()'> <table id='F1table' border="0" bordercolor = '#000000' > <tr> <td onmouseover="bgSwap(this)" width="35" height="35"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> <td onmouseover="bgSwap(this)" width="30" height="30"></td> </tr> </table> </body>

  • 複数の場所(tableの中のtd)の色を変更する

    いつもお世話になっています。 以前こちらで質問させて頂き、途中までは解決したのですが (ありがとうございました)、また新たに問題が発生してしまいましたので・・・どなたか助けて下さい(応用がどうしてもできないので ・・・行き詰まってしまいました><) やりたいことはテーブルの各行の上をカーソルが通過すると その行の色が変わる(通過しおわると元の色に戻る)という プログラムをつくりたいのです。。 しかし問題は、一行そのまま色が変わるというのではないことです。 下にソースがありますが、カーソルが『りんご』上にあるときは 『くだもの1』『くだもの2』のセルも一緒に色を変える、また、 『みかん』でも『バナナ』でもカーソルが上を通過してるときは 『くだもの1』『くだもの2』のセルを一緒に色を変える・・・というようにしたいのです(『なす』や『豚肉』達も同じです) 今できているソースだと『みかん』『バナナ』『メロン』のどれも 『くだもの1』しか色が変更されません。 どうすれば『くだもの2』も一緒に色変更されるのでしょうか? わかりずらい内容でしたらすみません(><) お手数おかけしますがどうかよろしくお願い致します。 ソースは以下になります(前回教えていただいた方のソースを そのまま使用していますm(_ _)m) ※違うプログラムの組み方でも大丈夫です。 <style> .fruit{ background-Color:blue; } .vegetable{ background-Color:green; } .cereal{ background-Color:yellow; } .onmouse{ background-Color:red; color:white; text-decoration:blink; font-weight:bold; } </style> <script Language="JavaScript"> <!-- window.onload=function(){ var trs=document.getElementsByTagName("tr"); var thisClass=""; var classNames=new Array(); for(var i in trs){ if(trs[i].className) classNames[trs[i].className]=true; trs[i].onmouseover=function(){ thisClass=this.className; this.className=this.className+(this.className.indexOf(" onmouse")==-1?" onmouse":""); document.getElementById(thisClass).className="onmouse"; } trs[i].onmouseout=function(){ this.className=this.className.replace(" onmouse",""); document.getElementById(thisClass).className=""; } } for(var j in classNames){ document.getElementById(j).onmouseover=function(){ for(var i in trs){ if(this.id==trs[i].className){ trs[i].className=trs[i].className+(trs[i].className.indexOf(" onmouse")==-1?" onmouse":""); } } } document.getElementById(j).onmouseout=function(){ for(var i in trs){ if(trs[i].className) if(trs[i].className.indexOf(" onmouse")>0){ trs[i].className=trs[i].className.replace(" onmouse",""); } } } } } // --> </script> <body> <table width="300" border="1" cellspacing="0" cellpadding="0"> <tr class="fruit"> <td rowspan="4" id="fruit">くだもの1</td> <td rowspan="4" id="fruit">くだもの2</td> <td>りんご</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>みかん</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>バナナ</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="fruit"> <td>メロン</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td rowspan="2" id="vegetable">野菜1</td> <td rowspan="2" id="vegetable">野菜2</td> <td>なす</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="vegetable"> <td>とまと</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td rowspan="3" id="cereal">肉1</td> <td rowspan="3" id="cereal">肉2</td> <td>豚肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>鶏肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr class="cereal"> <td>牛肉</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> </body> </html> どうぞよろしくお願い致します。

専門家に質問してみよう