HTMLのimageをクリックする方法

このQ&Aのポイント
  • エクセルVBAを使ってHTMLの画像をクリックする方法を教えてください。
  • エクセル2003で、指定されたHTMLのimageをクリックするためのVBAの記述方法を教えてください。
  • HTMLの<input type="image">タグを使用してボタンを作成し、それをエクセルVBAでクリックする方法を教えてください。
回答を見る
  • ベストアンサー

HTMLのimageをクリックする方法

どうか教えてください。 エクセルVBAからあるHPの画像をクリックしたいのですが やり方が分かりません。 HTML------------------ <input type="image" name="button" src="XX.gif" value="ログイン" alt="ログイン" /> ---------------------- 上記のHTMLなのですが、これをクリックしようと下記のVBAを書きました。 objIE.document.forms(0).elements(3).Click ここでは、forms、elementsの番号はどうでもいいとして、上記のHTMLで書かれたボタンをどうやって押すかご教示いただけますでしょうか。 不足情報あればご指摘ください。 エクセル2003

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 失礼しました! 調べて見たら Click でOKみたいですね。 http://d.hatena.ne.jp/language_and_engineering/20090710/p1 以下のコードで実験してみたら動作しました。(=Yhooで検索ボタンを押す) 対象画像のオブジェクトの取得がうまくいっていないのでは? (↓例はURLが投稿時に変換されると思いますので、ご注意) Sub test() Dim ie As Object  Set ie = CreateObject("InternetExplorer.Application")  ie.Visible = True  ie.Navigate "http://www.yahoo.co.jp/index.html"  Do While ie.Busy = True Or ie.readystate <> 4   DoEvents  Loop  ie.Document.getElementById("srchtxt").Value = "教えて" ' MsgBox ("クリックします")  ie.Document.getElementById("srchbtn").Click ' ie.Quit  Set ie = Nothing End Sub

lelion1000
質問者

お礼

ありがごうございます。 確かにご提示のコードは実行できました。 ただ、Clickしてるのはtype="submit"ですので、ここが違うのかなと思うのですがいかがでしょうか。 わたしがクリックしたいのは、type="image"となっています。 ちなみに私の当該URLで .Document.Item("button").Click とやると、このオブジェクトはプロパティまたはメソッドをサポートしていません、みたいなエラーになります。

lelion1000
質問者

補足

.Document.all.Item("button").Click でうまくいきました。 こうなってくると、当初の質問とは趣旨が違ってくるので閉じます。 #1さん、ありがとうございました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

Click → click() ではどうでしょうか?

lelion1000
質問者

お礼

どうもです。 コンパイルエラーになります。

関連するQ&A

  • VBAでIE操作

    三流君を見てもよくわからなかったので教えてください。 三菱東京UFJ銀行に自動でログインできるようにエクセルVBAで操作していますが パスワードを入れた後のログインがうまく出来ません。 objIE.document.Forms(0).submit だと、サイトが更新されてしまいます。 ソースは <td class="buttons"> <a href="javascript:void(0)" onClick="gotoPageFromAA011(); return false;" tabindex="3"><img src="https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif" alt="ログイン" onmouseover="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login_over.gif'" onmouseout="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif'"></a> なので、 objIE.document.all.gotoPageFromAA011(); return false;.Click とやりたいところですが、VBAではエラーになってしまいます。 どうすればログインできるのでしょうか? http://www.ken3.org/cgi-bin/group/vba_ie_form.asp#Input_button_Click を見てみましたが私がうまく出来てないのか出来ませんでした。 ご回答よろしくお願いします。

  • vba ie操作 ボタンを押したい(2)

    https://ca.omc-card.co.jp/member/omcplus_login.html のサイトにログインしたいのですが、ログインボタンが押せません。 ソースは、 ********************************************************************************** <FORM action="../member/xt_mem_top_login.asp" method="post" name="form1"><input type="hidden" name="sid" value=""><input type="hidden" name="pw" value="">     ~~~省略~~~ <TABLE border="0" cellspacing="0" cellpadding="5" class="tab_button_bottom15"> <TR> <TD><A href="javascript:checkInput(document.form1);"><IMG src="../img/button/login.gif" alt="ログイン" width="160" height="35" border="0"></A></TD> </TR> </TABLE> </FORM> ********************************************************************************** です。 --------------------------------------------------------------------------------- Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://ca.omc-card.co.jp/member/omcplus_login.html" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.forms(0).Item("sid_input").Value = "×××" objIE.Document.forms(0).Item("pw_input").Value = "×××" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop 'objIE.Document.forms(1).submit 'エラーになる objIE.Document.all.Item("document.form1").Click 'エラーになる objIE.Document.forms(0).getElementsByTagName("input")(0).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("input")(1).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("document.form1")(1).Click 'エラーになる objIE.Document.forms(1).getElementsByTagName("input")(1).Click 'エラーになる Set objIE = Nothing End Sub --------------------------------------------------------------------------------- テキストにIDとPWを入れるところまでは出来たのですが、 ログインボタンを押すことができません。 すいませんがご教授ご回答よろしくお願いしますm( )m

  • OCNにVBAでログインしたいのですが

    OCNにVBAでログインしたいのですが うまくできません。 URLは https://login.ocn.ne.jp/auth/s2001/pc/AuthLoginDisplay.action もしくは http://www.ocn.ne.jp/ です。 objIE.Document.all("comid").Value = " tenor.ocn.ne.jp" objIE.Document.all("password").Value = "" ここまではうまくいくのですが、ログインしようと、 objIE.Document.forms(0).submit 'ダメ objIE.Document.all("action:AuthLoginLogin").Checked = True 'ダメ でもダメでした。 ソースは <p class="align-c roll"><input type="image" alt="ログイン" src="common/images/btn_login.gif" id="AuthLoginDisplay_AuthLoginLogin" name="action:AuthLoginLogin" value="Submit" class="button"/> </p></form> なのですが うまくできません。 わかる方ご教授よろしくお願いします。

  • VBAでサイトのsubmitボタンをクリックしたい

    とあるサイトに自動ログインするvbaを作っています。 (三流君を参考にしています) Sub ログイン() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '************************************************** ObjIE.navigate "https://www" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop Application.Wait (Now + TimeValue("00:00:03")) ObjIE.Document.all.UserId.Value = "ID" ObjIE.Document.all.submit_l貸出照会.Click ’ここでエラーになる End Sub 上記のようなコードを書いているのですが 該当サイトのソースを読み取り、 「INPUT TYPE="text" NAME="userid" VALUE=""」 の部分は ObjIE.Document.all.UserId.Value = "ID" で出来たのですが 「<INPUT TYPE="submit" VALUE="貸出照会">」 の部分をクリックしてログインしたいのですが ObjIE.Document.all.貸出照会.Click だとエラーになってしまいます。 ObjIE.Document.Forms(0).item("貸出照会").Click もダメでした。 ご教授よろしくお願い致します。 (エクセル2003)

  • pyhonでweb操作(imageをクリック)

    pythonでweb操作をしたいです。 Chromeでログインするところまではできましたが、 クリックする箇所がimgになっており、どうやってクリックするのかわかりません。 色々調べてみたのですが、xpathを使っても下記のエラーが表示されます。 【エラー内容】 AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath' 【コード】 driver.find_element_by_xpath('//input[@type="image"][@src="/images/btnOrders.gif"]').click() 【画像のElements】 <a href="/Includes/SetMenuType.asp?MenuType=1"><img border="0" src="/images/btnOrders.gif"></a> 【Copy full Path】 /html/body/table/tbody/tr[4]/td[2]/a[1]

  • 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』というのもダメでした。

  • vbaでログインできない 手動だとできる

    GMO証券のでも画面にログインするvbaを組んでるのですが、 vbaでsubmitを押すと、エラー画面になってしまいます。画像を添付します。 しかし手動でログインボタンを押すとログインできるんです。そんなこと、あり得ますか? コードは↓です。 ****************************************************** Sub gmo() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://fx-demo.click-sec.com/ygmo/servlet/login?FAGD=1" Do Until objIE.ReadyState = 4 Loop With objIE.Document.Forms("frmMain") .elements("j_username").Value = "ID" .elements("j_password").Value = "PW" '手動ならログインできるのにvba(submit)だと「既にログインしています」になる '.submit End With End Sub ****************************************************** vbaだと、すでにログインしていなくても「既にログインしています」になってしまいます。 何かわかる方、ご回答よろしくお願いします。

  • mechanizeでimageをclick

    perlのmechanizeを使い、form内の、nameパラメータの無いimageボタンをクリックし、ページを遷移させようとしているのですが、方法がわかりません。下記ソースの「alt="スイッチ2"」のgifをクリックしようとしています。方法お分かりの方、お手数おかけして申し訳ありませんが、ご教授お願いできますでしょうか? ■■ツールバージョン   perl: v5.14.4   Mechanize :1.74 ■■対象のformを含むhtmlソース■■ <form name="second_step" method="get" action="a_link.cgi"><input type="hidden" name="CCC" value="愛"> <table width="950" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="26"><img src="img/t.gif" alt="" width="26" height="10"></td> <td> <table width="897" border="0" cellpadding="0" cellspacing="1" bgcolor="#cecece"> <tr> <td><table width="100%" border="0" cellpadding="8" cellspacing="0" bgcolor="#FFFBE0"> <tr> <td><font size="-1"> <textarea name="html_source" cols="105" rows="4" style="width:100%;" class="html_source"> </textarea> </font></td> </tr> </table></td> </tr> </table></td> </tr> </table> <div><img src="img/t.gif" alt="" width="10" height="10"></div> <table width="924" border="0" cellspacing="15" cellpadding="0"> <tr> <td width="447" align="right"><input type="image" src="img/af_shohin_05bt01.gif" alt="スイッチ1" class="select_source"></td> <td width="180"><input name="" type="image" src="img/af_shohin_05bt02.gif" alt="スイッチ2" class="post_blog"></td> <td width="252" align="right"><a href="a_link.cgi?CCC=https://www.google.co.jp/" target="_blank" class="post_twitter_2"><img width="154" height="33" alt="twitterで紹介" src="img/affili_cp_twitter_btn02.jpg" border="0"></a></td> </tr> </table> </form>

  • VBAでWebのデータを取得したい

    MS OFFICEカテゴリに投稿後、一件の反応も無かったので旧質問は削除の上板換えします。本題はVBとVBAが異なることはを承知での質問です。 エクセルVBAで取引先のサイトにログインし、請求データをダウンロードしようとしています。 ログインから目的のページに移動/チェックボックス等の処理もできたので objIE.Document.all.Item("Command.csvFileDownload").Click とすれば「ファイルのダウンロード」ウィンドウがポップアップするかと思ったら、IEのセキュリティ保護にブロックされてしましました。 「マウスでクリックしたらちゃんとダウンロードできるのに?」と思うのですが、VBAでの操作は危険=ウィルス?と認識されて当然な気もします。 IEのセキュリティレベルを変更せずにVBAでダウンロードまですることはやはり無理なのでしょうか? 該当のタグは以下のとおりです。 <input type="image" name="Command.csvFileDownload" src="/img/hogehoge/btn_download.gif" onclick="noDblClickCheck=true;"onmouseover="this.src='/img/hogehoge/btn_download.gif'" onmouseout="this.src='/img/hogehoge/btn_download.gif'" alt="ダウンロード"> どうぞ宜しくお願いします。

  • 文書オブジェクトについて???

    フォームボタンの画像を入れ替えたいのですが、 正しく動きません。何が悪いのでしょうか? 文字コードはEUC-JPを使っていますが、関係あるのでしょうか? <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE>Javascript</TITLE> <script type="text/javascript"> <!-- function btn_click(dat) { if(teban == 1){ document.forms['btn'].elements['btn1'].src = "./img/b.gif"; }else{ document.forms['btn'].elements['btn2'].src = "./img/d.gif"; } } --> </script> </HEAD> <BODY> フォームのボタンを使ってクリックすると画像が変わる  ようにしたい <form name="btn"> <input name="btn1" type="image" src="./img/a.gif" onClick="play_start(1); return false;"> <input name="btn2" type="image" src="./img/c.gif" onClick="play_start(2); return false;"> </form> </BODY> </HTML>

専門家に質問してみよう