私のuserformのComboBoxの "change"イベントを処理するコードを記述しようとしています。ステッピング時にVBAコードの動作が異なります
私はしかし、それは動作しません
など、this質問の答えで行き、別のクラスを作成しました。新しいプロジェクトで同じコードを使用するとうまくいきますが、このプロジェクトのこのコードは、「ステップバイステップ」実行(F8)を使用すると動作することがありますが、通常の実行では実行されません。
他の人の似たような苦境を見ると、 "DoEvents"が追加されましたが、それは助けになりませんでした。
これは、ユーザーフォームに
Private Sub UserForm_Initialize()
Dim ComboBox_Collection As Collection
Dim ctrl As Control
Dim cbc As ComboBox_Class
Set ComboBox_Collection = New Collection
For Each ctrl In UserForm1.MultiPage.Pages(2).Controls
DoEvents
If TypeName(ctrl) = "ComboBox" Then
DoEvents
Set cbc = New ComboBox_Class
Set cbc.Control = ctrl
ComboBox_Collection.Add cbc
DoEvents
End If
Next ctrl
Set cbc = Nothing
End Sub
私のコードであり、「ComboBox_Class」という名前のクラスモジュール、:
Private WithEvents TriggerComboBox As MSForms.ComboBox
Public Property Set Control(CB As MSForms.ComboBox)
Set TriggerComboBox = CB
End Property
Private Sub TriggerComboBox_Change()
MsgBox ("yay")
End Sub
実行したいことを教えてください。 –
@ScottMarcus、私は、ユーザーフォーム上の特定の型のすべてのコントロールの "変更"イベントを処理する簡単なコードを用意したいと思います。 – mathgenius