• ベストアンサー

エクセルVBAでのwitheventsについて

お世話になります。 エクセルVBAでクラス側で ListBoxにたいしてwitheventsは使用 できないのでしょうか? Private WithEvents lst As ListBox Public Sub Class_Initializa() Set lst = UserForm1.ListBox1 End Sub 上記コーディングで実行時に 「オブジェクトはオートメーションイベントを 発生させることができません」 になります。 クラス側でダブルクリックイベントを拾いたいのですが。 宜しくお願い致します。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 ListBoxはMSForms.ListBoxとしてPublic宣言します。 変数lstにListBox1への参照をSetするのは UserForm_Initializeで行えば良いのではないでしょうか。 クラスモジュール Option Explicit Public WithEvents lst As MSForms.ListBox Private Sub lst_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MsgBox lst.Name & "がダブルクリックされました。" End Sub ********************************************** フォームモジュール Option Explicit Public cls1 As New Class1 Private Sub UserForm_Initialize() Set cls1.lst = Me.ListBox1 End Sub

noname#127172
質問者

お礼

ありがとうございました。 基本的なこと失念してました。