저는이 문제에 대해 지금까지 고심하고 있습니다 ... 나는 아주 간단한 것을하고 싶습니다. 런타임에 여러 명령 단추를 작성한 다음이 명령 단추에 대한 이벤트를 하나의 프로 시저로 처리하려고합니다. 그래서 자동화를 처리하기 위해 "withevents"클래스를 만들었지 만 코드가 작동하지 않습니다. Test()를 실행하면 CommandButton이 만들어 지지만 클릭하면 아무런 메시지 상자 응답도 나타나지 않습니다 ... 오류를 찾을 수 없습니다. 도움이된다면 좋을 것입니다 !!런타임에 생성 된 OLEObject CommandButtons에 대한 이벤트 처리
클래스 cTest
Public WithEvents Button As MSForms.CommandButton
Public Sub Button_Click()
s = MsgBox("Hello", vbOKOnly)
End Sub
모듈 1
Public TestCollection As Collection
Sub Test()
Set TestCollection = New Collection
Dim Btn As CommandButton
Dim OLEBtnObj As cTest
Set OLEBtnObj = New cTest
Set Btn = Sheet1.OLEObjects.Add(ClassType:="Forms.CommandButton.1", link:=False,_ DisplayAsIcon:=False, Left:=368.25, Top:=51, Width:=44.25, Height:=24).Object
Set OLEBtnObj.Button = Btn
TestCollection.Add Item:=OLEBtnObj
End Sub
워크 시트 컨트롤 (.OLEObjects.Add)이 프로젝트를 다시 컴파일 한 것으로 보입니다. 원하는 경우 양식 컨트롤을 사용하여 작업을 시도하고'.OnClick' 이벤트를 할당하거나 ActiveX 컨트롤을 계속 사용하려면 http://stackoverflow.com/questions/10633387/programatically-inserting-click- 동적으로 생성 된 이벤트 코드 용 레이블이 없습니다. –