三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク



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

XXXXXさんへ 未解決 あとで調べる ◆質問「VBAのIE操作でリスト選択時にFireEventが効かない」

下記の質問をいただくが、解決しなかった。再度 あとで見てみる・・・


◆質問「VBAIE操作でリスト選択時にFireEventが効かない」

VBAコーディング

For Each Obj In ObjIE.Document.getElementsByTagName("OPTION")
If Obj.Value = "Black Gunmetal" Then
Obj.Selected = True
Obj.FireEvent ("OnChange")
Exit For
End If
Next



上記質問に対して、の 回答が

イベントが発生しないパターンで、似ているのが
三流君VBA:IE ラジオボタン(RADIO)の.Checkedと.Clickの違い
http://www.ken3.org/vba/backno/vba148.html
で、
.Click で イベント発生ですが、
三流君VBA:IE SELECT後 .fireEventでJavaScriptのイベントを起動
http://www.ken3.org/vba/backno/vba155.html
みたいに
現在使用中の .fireEvent で 発生でも動作すると思いますが・・・
スバリの回答になっていなくスミマセン。

For Each Obj In ObjIE.Document.getElementsByTagName("OPTION") 
    If Obj.Value = "Black Gunmetal" Then
        Msgbox "クリック?してみる"

        Obj.Selected = True
        'Obj.FireEvent ("OnChange")
         Obj.Click  'クリックしてみる
         Msgbox "ループからでる"

        Exit For
    End If
Next

何かの参考となれば幸いです。 三流プログラマー Ken3


と返信するが、動作しなかったみたい。
あとで、見てみる。

未解決 あとで調べる XXXXXさんへ VBA OUTLOOKの予定表の本文(Body)の一部を太字にしたい



未解決 あとで調べる

>EXCELVBAで生成したOUTLOOKの予定表の本文(Body)の一部を太字にしたいです。

ひと目、HTMLメール リッチテキストメールと勘違いしてしまったが、
予定表なんですよね。。。
^^^^^^^※メールなら、HTML形式やリッチテキスト形式のサンプルが少しは見つかりますが、

少し、予定表やoutlook vba 文字色を探ってみましたが、
よいページをgoole検索などで見つけることができませんでした。

AppointmentItem.RTFBody プロパティ (Outlook)(機械翻訳)
https://msdn.microsoft.com/ja-jp/library/office/ff861303.aspx
を見ると、
予定表にもリッチテキスト形式がありそうなので、
outlookリッチテキスト形式あたりから探るのがいいのかなぁ

ズバリの回答じゃなくてすみません
解決のヒントとなれば幸いです。 三流プログラマー Ken3



未解決 あとで調べる