【Excelマクロ(VBa)】IEの操作(コンボボックス)

IE起動~終了までは述べたので、起動後のIEの操作をExcelマクロ(VBa)で行います。尚、コーディングするにあたっては、多少htmlの知識が必要です。(読めないと記述できません)

操作するページは引き続きYahooの乗換案内です。(サンプルソース)

Yahoo乗換案内のコンボボックスは、idを用いている場合とidを用いていないnameのみの場合の2種類がありますので、それぞれ説明します。


   コンボボックス(idを用いている場合)


idを用いている場合のコンボボックスは【日時】があります。



今回は【日時】の月をサンプルとしてご紹介します。

タグにidが設定されている場合は、getElementById("~") を使う事で操作できます。

そして、プルダウンメニューの上から 0, 1, 2 ...と採番されるので、objIE.document.getElementById(idの値)(プルダウンメニュー順番).Selected = true で操作します。

【日時】の月
  <乗換案内html>
<select id="m" name="m">
   <option value="01" selected>1月</option>
   <option value="02">2月</option>
   <option value="03">3月</option>
   <option value="04">4月</option>
    ・
    ・
   <option value="10">10月</option>
   <option value="11">11月</option>
   <option value="12">12月</option>

  <Excelマクロ(VBa)>
  ▽「1月」を選択(0:1月、1:2月、2:3月、3:4月・・・、9:10月、10:11月、11:12月)
objIE.document.getElementById("m")(0).Selected = True

  ▽「2月」を選択(0:1月、1:2月、2:3月、3:4月・・・、9:10月、10:11月、11:12月)
objIE.document.getElementById("m")(1).Selected = True
    ・
    ・
  ▽「12月」を選択(0:1月、1:2月、2:3月、3:4月・・・、9:10月、10:11月、11:12月)
objIE.document.getElementById("m")(11).Selected = True



   コンボボックス(nameのみの場合)


idを用いていないnameのみの場合のコンボボックスは運賃の欄に【種別】【座席】、条件の欄に【歩く速度】【表示順序】があります。



今回は運賃の欄の【種別】【座席】をサンプルとしてご紹介します。

タグにidが設定されている場合はgetElementById("~")を使う事が出来ましたが、idが設定されていない今回の場合はname=~に注目してall("~")で操作します。

そして、プルダウンメニューの上から 0, 1, 2 ...と採番されるので、objIE.document.all(nameの値)(プルダウンメニュー順番).Selected = true で操作します。

【種別】
  <乗換案内html>
<select name="ticket">
<option value="ic" selected>ICカード優先</option>
<option value="normal" >現金(きっぷ)優先</option>

  <Excelマクロ(VBa)>
  ▽「ICカード優先」を選択(0:ICカード優先、1:現金(きっぷ)優先)
objIE.document.all("ticket")(0).Selected = True

  ▽「現金(きっぷ)優先」を選択(0:ICカード優先、1:現金(きっぷ)優先)
objIE.document.all("ticket")(1).Selected = True


【座席】
  <乗換案内html>
<select name="expkind">
<option value="1" selected>自由席優先</option>
<option value="2" >指定席優先</option>
<option value="3" >グリーン車優先</option>

  <Excelマクロ(VBa)>
  ▽「自由席優先」を選択(0:自由席優先、1:指定席優先、2:グリーン車優先)
objIE.document.all("expkind")(0).Selected = True

  ▽「指定席優先」を選択(0:自由席優先、1:指定席優先、2:グリーン車優先)
objIE.document.all("expkind")(1).Selected = True

  ▽「グリーン車優先」を選択(0:自由席優先、1:指定席優先、2:グリーン車優先)
objIE.document.all("expkind")(2).Selected = True

管理人 について

趣味:映画鑑賞・音楽鑑賞・ゲーム・旅行 仕事:会社員(IT関連)
カテゴリー: VBa(Excelマクロ), システム開発 パーマリンク

コメントを残す