三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

XXXXXさんへ もしかして、OPTIONタグに.FireEvent ("OnChange")は無いのかも?

前回、未解決
ken3memo.hatenablog.com
の続き・・・

こんにちは。
html option onclick
のキーワードで検索すると、

【JavaScript】プルダウンメニューを選択しただけで、画面遷移をさせる。 - Qiita
セレクトボックスで onclick っぽいことやってみた: 迷子の古事記
セレクトボックスでナビゲーション-JavaScript入門
JavaScriptの動かないコード (中級編) ラジオボタンとプルダウンのonchangeイベントがおかしい - 主に言語とシステム開発に関して
など、イロイロとJavaScriptのサンプルが見つかります。


OPTION タグには、
もしかして、
("OnChange")
のイベントは無く、
親の
SELECTタグの("OnChange")を発生させないとダメなのかもしれません。
'↑親の SELECTタグにOnChangeのイベントが記載されているのかも?

元のソースコード

For Each Obj In ObjIE.Document.getElementsByTagName("OPTION")
    If Obj.Value = "Black Gunmetal" Then
        Obj.Selected = True
        Obj.FireEvent ("OnChange")  '←そもそも、このイベントが無いので
        '↑親の SELECTタグにOnChangeのイベントが記載されているのかも?
        Exit For
    End If
Next

単純に
三流君VBA:IE操作 .parentElement で親のタグを参照?
http://www.ken3.org/vba/backno/vba180.html
で動作するかわかりませんが、

For Each Obj In ObjIE.Document.getElementsByTagName("OPTION")
    If Obj.Value = "Black Gunmetal" Then
        Obj.Selected = True
        Obj.parentElement.FireEvent ("OnChange")  '←一つ上エレメントのOnChange起動?
        '↑親の SELECTタグにOnChangeのイベントが記載されているのかも?
        Exit For
    End If
Next


.parentElement.FireEvent ("OnChange")
で起動できたらラッキーなのですが、

はずしていたらすみません。
解決の糸口となれば幸いです。  三流プログラマー Ken3

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)