본문 바로가기

엑셀/VBA

VBA 개발 도구의 ActiveX 컨트롤을 사용하여 프로그래밍 하기 I

반응형

엑셀 메뉴에서 개발도구-컨트롤-삽입을 클릭하면 양식 컨트롤ActiveX 컨트롤 두 가지의 메뉴를 보실 수 있습니다. 양식 컨트롤의 경우는 VBA 프로그래밍 없이 사용할 수 있는 컨트롤이지만 ActiveX 컨트롤은 VBA 프로그래밍이 필요한 컨트롤입니다. 엑셀에서 ActiveX 컨트롤을 사용하여 보다 빠르고 편리하게 업무를 처리할 수 있도록 이에 대해 자세히 알아보겠습니다.

 

엑셀 메뉴에서 개발도구가 보이지 않는다면 아래 링크의 글을 참조하시기 바랍니다.

 

엑셀 매크로 저장 및 사용하기 I

 

엑셀 매크로 저장 및 사용하기 I

1. 매크로를 사용하기 위한 메뉴 추가 엑셀 메뉴를 보시면 개발도구라는 메뉴가 있습니다. 만약 없다면 홈 메뉴에서 옵션을 클릭하시면 [그림 1]과 같은 엑셀 옵션 창이 뜹니다. 그럼 좌측에 나열

mr-johndoe.tistory.com

 

 

 

1. 명령 단추와 콤보 상자

 명령 단추는 흔히 볼 수 있는 버튼 모양을 하고 있으며 버튼이 눌렸을 때 VBA로 작성된 프로시저가 실행됩니다. 콤보 상자의 기능은 앞에서 알아본 양식 컨트롤의 콤보 상자와 동일합니다. 하지만 ActiveX 컨트롤 콤보 상자는 VBA 프로그램에 의해 실행됩니다.

 

엑셀 개발도구 삽입의 양식 컨트롤 사용하기 I

 

엑셀 개발도구 삽입의 양식 컨트롤 사용하기 I

엑셀에서 데이터를 다룰 때 함수 등을 사용하는 경우도 많지만 개발도구의 여러 가지 컨트롤을 사용하면 편리하게 데이터를 사용할 수 있습니다. 또한 양식 컨트롤을 사용하면 VBA 같은 프로그

mr-johndoe.tistory.com

 

실제 버튼과 콤보 상자를 만들어 보면서 사용 방법을 알아보겠습니다.

 

과일명_데이터
[그림 1] 과일명 

엑셀 시트 임의의 위치에 [그림 1]과 같이 작성해 놓습니다. 그리고 이 작성해 놓은 표에 이름을 부여하겠습니다. 만든 데이터 셀 전체를 선택하고 엑셀 메뉴에서 수식-정의된 이름-선택 영역에서 만들기를 클릭합니다. ( [그림 2] 참조)

 

수식_메뉴
[그림 2] 수식 메뉴

 

선택_영역에서_만들기_메시지창
[그림 3] 선택 영역에서 만들기 메시지창

[그림 3]과 같은 메시지 창이 뜹니다. 첫 행에 체크 표시를 한 후 확인 버튼을 누릅니다.

그러면 [그림 1]과 같이 만든 데이터 그룹 이름이 '과일명'이라는 이름으로 명명되었습니다.

 

 

 

이제 엑셀 시트에 콤보 상자 1 개, 명령 단추 1 개를 엑셀 메뉴에서 개발도구-컨트롤-삽입을 클릭하고 ActiveX 컨트롤에서 콤보 상자명령 단추를 클릭하여 만듭니다. 작성 방법은 양식 컨트롤 작성 방법과 동일합니다.

 

명령_단추_속성창
[그림 4] 명령 단추 속성창

만든 명령 단추의 속성을 열고 Caption의 값을 '선택한 과일'이라 입력하였습니다. ( [그림 4] 참조)

그러면 명령 단추의 글자가 Caption에 입력한 값으로 변경된 것을 보실 수 있습니다.

 

콤보_상자_속성창
[그림 5] 콤보 상자 속성창

만든 콤보 상자 역시 속성을 열고 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.ValueMsgBox ComboBox1.Value & "를 선택하셨습니다."만 작성하시면 됩니다.

 

Range("C4").Value = ComboBox1.Value : C4 셀에 콤보 박스에서 선택된 값을 입력하라는 명령입니다.

 

MsgBox ComboBox1.Value & "를 선택하셨습니다."  : 버튼이 누르면 메시지 창이 띄우라는 명령입니다.

 

이제 엑셀 시트로 가셔서 콤보 상자의 화살표를 클릭하여 원하는 과일을 선택하면 C4 셀에 선택한 과일명이 나타나는 것을 보실 수 있으면 명령 단추를 누르시면 메시지 창이 뜨는 것을 확인하실 수 있습니다.

 

반응형