엑셀365에서 ActiveX 컨트롤은 사용자가 더욱 정교하고 인터랙티브한 사용자 인터페이스(UI)를 구성할 수 있도록 도와주는 고급 도구입니다. 단순한 폼 컨트롤보다 이벤트 중심 처리와 속성 설정이 유연해서, 복잡한 자동화 작업이나 사용자 맞춤형 입력 시스템 구축에 탁월한 성능을 발휘하죠.
이번 포스팅에서는 엑셀365의 ActiveX 컨트롤로 업무 효율을 높이는 방법을 기본 사용법부터 실무 예제까지 단계별로 정리해드릴게요.
ActiveX 컨트롤은 VBA와 연동되는 고급 UI 요소로, 폼 컨트롤보다 다양한 속성과 이벤트를 활용할 수 있습니다.
항목 | 폼 컨트롤 | ActiveX 컨트롤 |
---|---|---|
속성 설정 | 제한적 | 매우 다양 |
이벤트 처리 | 매크로 연결 | 다양한 이벤트 지원 (Click, Change 등) |
디자인 제어 | 기본 | 색상, 글꼴, 테두리 등 세밀 조정 가능 |
추천 사용 | 일반 입력/선택 | 고급 자동화, 사용자 정의 UI |
파일 > 옵션 > 리본 사용자 지정 > 개발 도구
체크개발 도구 > 삽입 > ActiveX 컨트롤
팁: 디자인 모드(디자인 모드 활성화
) 상태에서 위치 조정 및 속성 설정 가능
컨트롤 | 기능 |
---|---|
CommandButton | 버튼 클릭 시 매크로 실행 |
TextBox | 사용자 텍스트 입력 |
ComboBox | 드롭다운 항목 선택 |
ListBox | 다중 항목 선택 가능 |
CheckBox | 조건 체크 여부 입력 |
OptionButton | 단일 항목 선택 (라디오 버튼) |
Label | 설명 또는 고정 텍스트 표시 |
TextBox1
+ CommandButton1
배치Private Sub CommandButton1_Click()
Sheets("데이터").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = TextBox1.Value
MsgBox "저장되었습니다: " & TextBox1.Value
TextBox1.Value = ""
End Sub
활용 예:
Private Sub Worksheet_Activate()
With ComboBox1
.Clear
.AddItem "VIP"
.AddItem "우수"
.AddItem "일반"
End With
End Sub
Private Sub ComboBox1_Change()
Range("B2").Value = ComboBox1.Value
End Sub
활용 예:
MultiSelect = 1
(다중 선택 허용)Private Sub Worksheet_Activate()
With ListBox1
.Clear
.AddItem "제품 A"
.AddItem "제품 B"
.AddItem "제품 C"
End With
End Sub
Private Sub CommandButton1_Click()
Dim 선택값 As String, i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
선택값 = 선택값 & ListBox1.List(i) & ", "
End If
Next i
Range("C2").Value = Left(선택값, Len(선택값) - 2)
End Sub
속성 | 설명 |
---|---|
Name | 컨트롤 이름 지정 |
Font | 글꼴 및 크기 |
BackColor | 배경색 설정 |
ForeColor | 텍스트 색상 |
Enabled | 사용 가능 여부 |
Visible | 표시 여부 |
MultiSelect | 다중 선택 여부 (ListBox 전용) |
ActiveX 컨트롤은 **다양한 이벤트(Click, Change, Enter, Exit 등)**를 감지하여 자동으로 코드 실행 가능
이벤트 | 설명 |
---|---|
Click | 버튼 클릭 시 실행 |
Change | 입력값 변경 시 실행 |
Enter | 컨트롤 진입 시 실행 |
Exit | 컨트롤 포커스 아웃 시 실행 |
예: TextBox에 입력한 값이 10자를 넘으면 경고 출력
Private Sub TextBox1_Change()
If Len(TextBox1.Text) > 10 Then
MsgBox "10자 이하로 입력하세요!"
TextBox1.Text = Left(TextBox1.Text, 10)
End If
End Sub
항목 | 설명 |
---|---|
보안 경고 | 매크로 사용 설정이 필요 (.xlsm 파일로 저장) |
호환성 | Mac에서는 ActiveX 컨트롤 동작 불가 |
배포 | 다른 사용자에게 공유 시 ‘개발 도구’ 활성화 필요 |
안정성 | 복잡한 시트 구조에서는 예외 처리 필수 |
이름 중복 | 컨트롤 이름은 명확하게 지정 (TextBox_이름 등) |
폼 컨트롤은 단순한 기능만 제공하지만,
ActiveX는 더 많은 이벤트 제어와 속성 커스터마이징이 가능해
입력폼, 앱 인터페이스, 대시보드 등 고급 자동화 작업에 적합합니다.
디자인 모드
가 꺼져 있으면 수정/설정이 안 됩니다개발 도구 > 디자인 모드
활성화 여부 확인파일 > 옵션 > 보안 센터
네, 아래처럼 시트 이름을 조건으로 걸 수 있습니다:
If ActiveSheet.Name = "입력시트" Then
' 실행 코드
Else
MsgBox "이 컨트롤은 입력시트에서만 사용할 수 있습니다."
End If
엑셀365의 ActiveX 컨트롤은 데이터 입력 자동화, 사용자 인터페이스 구축, 맞춤형 업무 도구 제작에 매우 유용한 기능입니다. 일반적인 폼 컨트롤보다 훨씬 더 유연하고 강력하며, VBA와 결합하면 엑셀은 더 이상 단순한 시트가 아닌, 강력한 업무 자동화 플랫폼이 됩니다. 지금부터 ActiveX 컨트롤로 엑셀을 ‘업무 자동화 툴’로 진화시켜보세요!
엑셀365 폼 컨트롤로 양식 자동화하기 실무 가이드 엑셀365의 폼 컨트롤(Form Controls) 기능은 사용자가 데이터 입력을…
엑셀365에는 수백 개의 기본 내장 함수가 있지만, 실무에서는 내장 함수만으로 부족한 상황이 종종 발생합니다. 이럴…
엑셀365에서 VBA(Visual Basic for Applications) 매크로는 반복되는 작업을 자동화하고, 사용자의 클릭이나 입력에 반응하여 맞춤형 엑셀…
엑셀365 슬라이서 기능으로 피벗 테이블 분석 효율 높이기 엑셀365의 슬라이서(Slicer) 기능은 피벗 테이블이나 표에서 필터링을…
엑셀365 데이터 가져오기 및 외부 데이터 연결법 총정리 엑셀365는 단순한 계산 툴을 넘어, 다양한 외부…