엑셀 메뉴에서 개발도구-컨트롤-삽입을 클릭하면 양식 컨트롤과 ActiveX 컨트롤 두 가지의 메뉴를 보실 수 있습니다. 양식 컨트롤의 경우는 VBA 프로그래밍 없이 사용할 수 있는 컨트롤이지만 ActiveX 컨트롤은 VBA 프로그래밍이 필요한 컨트롤입니다. 엑셀에서 ActiveX 컨트롤을 사용하여 보다 빠르고 편리하게 업무를 처리할 수 있도록 이에 대해 자세히 알아보겠습니다.
엑셀 메뉴에서 개발도구가 보이지 않는다면 아래 링크의 글을 참조하시기 바랍니다.
1. 명령 단추와 콤보 상자
명령 단추는 흔히 볼 수 있는 버튼 모양을 하고 있으며 버튼이 눌렸을 때 VBA로 작성된 프로시저가 실행됩니다. 콤보 상자의 기능은 앞에서 알아본 양식 컨트롤의 콤보 상자와 동일합니다. 하지만 ActiveX 컨트롤 콤보 상자는 VBA 프로그램에 의해 실행됩니다.
실제 버튼과 콤보 상자를 만들어 보면서 사용 방법을 알아보겠습니다.
엑셀 시트 임의의 위치에 [그림 1]과 같이 작성해 놓습니다. 그리고 이 작성해 놓은 표에 이름을 부여하겠습니다. 만든 데이터 셀 전체를 선택하고 엑셀 메뉴에서 수식-정의된 이름-선택 영역에서 만들기를 클릭합니다. ( [그림 2] 참조)
[그림 3]과 같은 메시지 창이 뜹니다. 첫 행에 체크 표시를 한 후 확인 버튼을 누릅니다.
그러면 [그림 1]과 같이 만든 데이터 그룹 이름이 '과일명'이라는 이름으로 명명되었습니다.
이제 엑셀 시트에 콤보 상자 1 개, 명령 단추 1 개를 엑셀 메뉴에서 개발도구-컨트롤-삽입을 클릭하고 ActiveX 컨트롤에서 콤보 상자와 명령 단추를 클릭하여 만듭니다. 작성 방법은 양식 컨트롤 작성 방법과 동일합니다.
만든 명령 단추의 속성을 열고 Caption의 값을 '선택한 과일'이라 입력하였습니다. ( [그림 4] 참조)
그러면 명령 단추의 글자가 Caption에 입력한 값으로 변경된 것을 보실 수 있습니다.
만든 콤보 상자 역시 속성을 열고 ListFillRange의 값을 앞에서 이름 정의한 '과일명'이라고 입력합니다.
만든 콤보 상자와 명령 단추를 각각 더블클릭하여 VBE 창을 엽니다. 만약 더블클릭이 안 되는 경우에는 엑셀 메뉴에서 개발도구-컨트롤-디자인 모드를 클릭합니다.
그리고, 아래와 같이 코딩합니다.
Private Sub ComboBox1_Change()
Range("C4").Value = ComboBox1.Value
End Sub
Private Sub CommandButton1_Click()
MsgBox ComboBox1.Value & "를 선택하셨습니다."
End Sub
ComboBox1_Change() sub 프로시저와 CommandButton1_Click() sub 프로시저는 더블클릭을 하여 자동으로 만들어졌으므로 Range("C4").Value = ComboBox1.Value와 MsgBox ComboBox1.Value & "를 선택하셨습니다."만 작성하시면 됩니다.
Range("C4").Value = ComboBox1.Value : C4 셀에 콤보 박스에서 선택된 값을 입력하라는 명령입니다.
MsgBox ComboBox1.Value & "를 선택하셨습니다." : 버튼이 누르면 메시지 창이 띄우라는 명령입니다.
이제 엑셀 시트로 가셔서 콤보 상자의 화살표를 클릭하여 원하는 과일을 선택하면 C4 셀에 선택한 과일명이 나타나는 것을 보실 수 있으면 명령 단추를 누르시면 메시지 창이 뜨는 것을 확인하실 수 있습니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA 사용자 정의 폼과 컨트롤 도구로 엑셀 시트에 데이터 입력하기 (0) | 2021.09.02 |
---|---|
VBA 개발도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 II (0) | 2021.08.30 |
VBA로 원하는 색상 사용하는 방법 알아보기 II (0) | 2021.08.20 |
VBA로 원하는 색상 사용하는 방법 알아보기 I (0) | 2021.08.20 |
VBA 반복문 Do Loop에 대해 알아보자 (0) | 2021.08.19 |