사용자 정의 폼이 실행 중일 때 각종 컨트롤(텍스트박스, 레이블, 체크박스 등)을 추가해보자
1. CommandButton 추가
저 버튼을 누르면 커맨드버튼이 생성된다.
Private Sub CommandButton1_Click()
Dim Add_Ctrl As Control
Set Add_Ctrl = Controls.Add("Forms.CommandButton.1")
End Sub
기본적인 커맨드버튼 생성 코드이다.
이것만 실행하면 가장 기본적인 크기의 버튼이 생성되고 위치, 크기, 이름 등은 생성 후에 조정해주면 된다.
Private Sub CommandButton1_Click()
Dim Add_Ctrl As Control
Set Add_Ctrl = Controls.Add("Forms.CommandButton.1")
Add_Ctrl.Left = 12 '좌우 위치, 0일 경우 가장 왼쪽
Add_Ctrl.Top = 12 '상하 위치, 0일 경우 가장 위쪽
Add_Ctrl.Width = 36 '가로길이(너비)
Add_Ctrl.Height = 18 '세로길이(높이)
Add_Ctrl.Caption = "Text"
Add_Ctrl.Name = "Control"
End Sub
2. 다른 컨트롤 추가
컨트롤 | 코드 |
CheckBox | Forms.CheckBox.1 |
ComboBox | Forms.ComboBox.1 |
CommandButton | Forms.CommandButton.1 |
Frame | Forms.Frame.1 |
Image | Forms.Image.1 |
Label | Forms.Label.1 |
ListBox | Forms.ListBox.1 |
MultiPage | Forms.MultiPage.1 |
OptionButton | Forms.OptionButton.1 |
ScrollBar | Forms.ScrollBar.1 |
SpinButton | Forms.SpinButton.1 |
TabStrip | Forms.TabStrip.1 |
TextBox | Forms.TextBox.1 |
ToggleButton | Forms.ToggleButton.1 |
Set Add_Ctrl = Controls.Add("Forms.CommandButton.1")
Forms.CommandButton.1 대신 필요한 놈들로 바꿔서 쓰면 해당 컨트롤이 생성된다.
3. 추가된 컨트롤 사용하기
유저폼의 컨트롤들은 ME > Controls에 모여있다.
Controls 안에 item으로 옹기종기 있으며, 컨트롤을 추가하면 item도 늘어나게 된다.
컨트롤 추가하는 버튼을 클릭하니 Item이 두 개로 늘었다.
내가 설정한 캡션과 이름으로도 변경됨을 확인할 수 있다.
그렇다면 추가된 컨트롤은 어떻게 사용하나
Private Sub UserForm_Click()
Me.Controls.Item(1).Caption = "Hello World"
End Sub
유저폼을 클릭했을 때 추가된 컨트롤의 캡션을 바꾸도록 했다.
사용법은 ME.Controls.Item(숫자).속성명(left, top, name, caption 등) 하여 쓸 수 있다.
item(숫자)부분에서 조심할건 속성창에 표시되는 건 item1, item2 ,.. ... .item10 이렇게 1부터 시작하지만
코드에서 item(0)부터 시작한다. 배열과 똑같다.
ex). 속성창에 표시된 item3을 사용하려면 코드에서 item(2)
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀vba] Module 이름을 바꿔보자 (0) | 2020.09.09 |
---|---|
[엑셀vba] 사용자 정의 폼에서 키 입력 받고 이벤트 실행하기 (0) | 2020.09.08 |
[엑셀vba] 엑셀없이 사용자 정의 폼을 실행해보자 (0) | 2020.08.31 |
[엑셀vba] 파워포인트 제어하기 (0) | 2020.08.27 |
[엑셀vba] 내가 만든 매크로 추가 기능에 추가하기 (0) | 2020.07.23 |