2016-08-22 5 views
1

런타임에 생성 된 컨트롤 (확인란)과 연결된 이벤트에 매개 변수 (ref 또는 val은 중요하지 않음)를 전달해야합니다. 나는 단지 길을 찾을 수없는 것 같습니다. (나는 심지어 더러운 public 선언을 시도했다는 것을 인정해야한다.) 그리고 다른 메모에서 어떻게 이벤트의 컨트롤의 속성에 액세스 할 수 있습니까? 내가 체크 박스를 생성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 

최종 하위

+0

매개 변수는 무엇입니까? 수업에서 속성을 사용할 수 있습니까? –

+0

배열에 클래스를 추가 할 때 객체를 전달할 수도 있습니다 (예 : userform). 부모 객체 (userform)에 대한 참조를 전달할 수 있습니까? –

+0

팁을위한 Thx 나는 그것들을 시험해 볼 것입니다. 나는 하나의 일을 할 수있게되기를 바랍니다. –

답변

1

제어는 사용자가 액세스 할 수 있도록 butEvents라는 변수에 클래스에 할당 그것의 모든 속성 :

butEvents.BackColor = vbRed