VBA - 컨트롤을 Userform에 동적으로 추가하기

이 데모에 대한 지원을 만들기 위해 계산기 예제를 사용했지만 이번에는 모든 컨트롤을 동적으로 생성했습니다.

사용자 정의 폼에서 컨트롤을 동적으로 만들면 Excel에서 컨트롤의 이름을 인식하지 못합니다. 즉, 컨트롤 및 해당 속성에 의해 생성 된 이벤트는 할당 된 이름을 통해 액세스 할 수 없습니다. 예를 들어, 다음 코드로 버튼을 만들 때 :

설정 Bouton = Me.Controls.Add ( "Forms.CommandButton.1", "Bt"& i, True)

버튼의 이름은 (i = 1 인 경우) BT1

그러나 Private Sub BT1_Click () 이벤트는 절대로 생성되지 않습니다. 이 문제를 처리하기 위해 속성에 대한 객체 모음과 이벤트에 대한 클래스 모음을 사용했습니다. 객체 컬렉션에는 컨트롤뿐만 아니라 참조를위한 키가 포함됩니다. 원하는 인덱스로 컨트롤의 Tag 속성을 구성하면 클래스 컬렉션에서이 이벤트의 대상이 된 컨트롤을 알 수있는 인덱스를 반환 할 수 있습니다.

사용자 정의 폼 디자인에는 제어가 없습니다. 모든 컨트롤은 프레임 컨테이너를 포함하여 계산기에서 동적으로 생성됩니다. 데모는 단추를 프레임에 통합하는 방법을 제공합니다.

다운로드 :

서버 1 : 컨트롤 UserForm.xls 추가

이전 기사 다음 기사

톱 팁