2016-08-22 9 views
1

実行時に生成されるコントロール(チェックボックス)に関連付けられたイベントにパラメータ(refまたはvalは関係ありません)を渡す必要があります。私は方法を見つけることができないようです。 (私はいくつかの汚れた宣言を無駄にしようとしたことを認めなければなりません) もう一つの注意点として、イベントからコントロールのプロパティにどうやってアクセスできますか?私は、チェックボックスを生成Vbaのイベントハンドラにパラメータを渡す

一部:

For Each distinctClientList In Range("DA3:DA" & LastRow).Cells 

    Dim MaTextBox As Object 
    Set MaTextBox = Client_picking.Controls.Add("Forms.TextBox.1") 
    With MaTextBox 
     .Text = CStr(distinctClientList.Value) 
     .Left = 20 
     .top = topref + (20 * Client_picking.i) 
     .Width = 90: 
     .Height = 20 
    End With 

    Dim MaCheckBoxfile As Object 
    Set MaCheckBoxfile = Client_picking.Controls.Add("Forms.CheckBox.1") 
    With MaCheckBoxfile 
     .Caption = "fichier" 
     .Left = 140 
     .top = topref + (20 * Client_picking.i) 

    End With 


    ReDim Preserve ButArray(1 To Client_picking.i) 

    Set ButArray(Client_picking.i).butEvents() = MaCheckBoxfile 
    Client_picking.i = Client_picking.i + 1 
Next 

マイハンドラ

Public WithEvents butEvents As MSForms.CheckBox  
Private Sub butEvents_click()If Checked Then 
    MsgBox "checked" & /*This is where i would put my parameter... IF I HAD ONE!*/ 
End If 

End Subの

+0

パラメータは何になりますか?あなたはクラス内のプロパティを使用できますか? –

+0

クラスを配列に追加するときにオブジェクトを渡すこともできます。たとえば、userformを使用して、親オブジェクトへの参照を渡すことができます。 –

+0

チップのためのThx私はそれらを試みるつもりです。私は1つの仕事をすることができると思う。 –

答えて

1

制御はあなたがアクセスできるようにbutEventsという名前の変数にクラスに割り当てられ、そのすべてのプロパティ:

butEvents.BackColor = vbRed 
関連する問題