엑셀에서 VBA를 활용해 작업하다 보면 많은 분들이 데이터 입력 양식을 만드는 과정에서 어려움을 겪곤 합니다. 이 글에서는 VBA를 사용해 편리하고 보기 좋은 데이터 입력 양식을 만드는 방법을 단계별로 자세히 소개합니다.
엑셀 VBA로 데이터 입력 양식 만들기: 3단계
여기에는 Washington, New York, California라는 세 개의 워크시트가 준비되어 있습니다. 각 워크시트에는 한 은행의 세 지점별 고객 이름, 연락처, 나이, 성별 정보가 들어 있습니다.

오늘의 목표는 VBA를 활용해 이 데이터베이스에 새 데이터를 손쉽게 입력할 수 있는 양식을 만드는 것입니다. 전체 과정은 크게 두 단계로 진행됩니다.
- 첫째, 새 데이터를 입력할 UserForm(사용자 폼)을 생성합니다.
- 둘째, 워크시트에 폼을 여는 버튼을 추가합니다.
1단계: UserForm을 활용한 데이터 입력 양식 만들기
이 단계는 다소 긴 과정이므로 처음 접하는 분들은 시간이 걸릴 수 있습니다. 최상의 결과를 얻으려면 아래 단계를 차근차근, 꼼꼼하게 따라 해 보세요.
- 키보드에서 ALT + F11 키를 눌러 Visual Basic 창을 엽니다.

- Visual Basic 창 상단 도구 모음에서 Insert > UserForm을 클릭합니다. 그러면 UserForm1이라는 새 사용자 폼이 열립니다.

- 도구 상자에서 Label(Label1)을 드래그해 폼의 좌측 상단에 배치하고, 표시 텍스트를 Worksheet로 변경합니다.
- 그 오른쪽에 Listbox(Listbox1)를 드래그해 배치합니다.
- 이어서 데이터 집합의 열 개수만큼(이 예제에서는 4개) Label을 폼 좌측에 추가하고, 각 레이블 옆에는 TextBox를 하나씩 배치합니다.
- 레이블의 표시 텍스트를 각각 열 제목(Customer Name, Contact Address, Age, Gender)으로 변경합니다.
- 마지막으로 CommandButton을 폼 우측 하단에 배치하고, 표시 텍스트를 Enter Data(데이터 입력)로 변경합니다.

- Listbox를 더블클릭하면 ListBox1_Click이라는 private 서브 프로시저가 열립니다. 아래 코드를 입력하세요.
⧭ VBA 코드:
Private Sub ListBox1_Click()
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.Selected(i) = True Then
Worksheets(UserForm1.ListBox1.List(i)).Activate
End If
Next i
End Sub

- 다음으로 CommandButton을 더블클릭하면 CommandButton_Click이라는 private 서브 프로시저가 열립니다. 여기에 아래 코드를 입력합니다.
⧭ VBA 코드:
Private Sub CommandButton1_Click()
Total_Rows = ActiveSheet.UsedRange.Rows.Count
Total_Columns = ActiveSheet.UsedRange.Columns.Count
Active_Column = 1
For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "TextBox" Then
ActiveSheet.UsedRange.Cells(Total_Rows + 1, Active_Column) = Ctrl.Text
Active_Column = Active_Column + 1
End If
Next Ctrl
End Sub

- 마지막으로 도구 모음에서 Insert > Module을 클릭해 모듈을 삽입합니다.

- Module1이라는 새 모듈이 추가되면, 아래 코드를 입력하세요.
⧭ VBA 코드:
Sub Run_UserForm()
UserForm1.Caption = "Data Entry Form"
UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox1.ListStyle = fmListStyleOption
For i = 1 To Sheets.Count
UserForm1.ListBox1.AddItem Sheets(i).Name
Next i
Load UserForm1
UserForm1.Show
End Sub

완성되었습니다! 이제 데이터베이스에 새 데이터를 입력할 수 있는 데이터 입력 양식을 성공적으로 만들었습니다.
더 알아보기: 엑셀 데이터 입력 종류 한눈에 살펴보기
2단계: 데이터 입력 양식을 여는 버튼 삽입
지금까지 엑셀 VBA의 UserForm을 활용해 데이터 입력 양식을 성공적으로 만들었습니다. 이제 워크시트에 이 양식을 여는 버튼을 추가해 보겠습니다.
아래 단계를 따라 해 보세요.
- 엑셀 리본 메뉴 상단에서 개발 도구(Developer) 탭을 클릭해 엽니다. 개발 도구 탭은 기본적으로 숨겨져 있으니, 리본 메뉴에 보이지 않는다면 먼저 탭을 표시하는 설정을 진행하세요.

- 개발 도구 탭의 컨트롤(Controls) 그룹에서 삽입(Insert)을 클릭하면 다양한 컨트롤 도구가 나타납니다. 그중 가장 왼쪽 위에 있는 Button(양식 컨트롤, Form Control)을 드래그합니다.

- 버튼을 워크시트의 원하는 위치에 끌어다 놓으면 Assign Macro(매크로 지정) 대화상자가 열립니다. Macro name(매크로 이름) 입력란에 Run_UserForm을 입력합니다.

그런 다음 OK를 클릭합니다.
- 필요하다면 버튼의 표시 텍스트도 변경할 수 있습니다. 여기서는 Enter New Data(새 데이터 입력)로 바꿨습니다.

축하합니다! 데이터 입력 양식을 여는 버튼을 성공적으로 추가했습니다.
원한다면 각 워크시트마다 버튼을 하나씩 배치해 작업 흐름을 더욱 매끄럽게 만들 수도 있습니다.
더 알아보기: 엑셀에서 타임스탬프 데이터 입력 자동화하는 방법(5가지)
함께 읽으면 좋은 글
- 웹 폼 데이터로 엑셀 스프레드시트 채우는 방법
- 엑셀에서 데이터 로그 만들기(2가지 방법)
- 엑셀에서 작성 가능한 양식 만드는 방법(5가지 예제)
3단계: 최종 결과물 확인
엑셀 VBA로 데이터 입력 양식을 만들고, 이를 여는 버튼까지 추가했습니다. 결과를 확인하려면 워크시트의 Enter New Data(새 데이터 입력) 버튼을 클릭하세요.
데이터 입력 양식이 열리면, 먼저 새 데이터를 입력할 워크시트를 선택합니다.
여기서는 New York을 선택했습니다. 워크시트를 선택하는 즉시 해당 시트가 활성화됩니다.

- 그다음 입력할 나머지 데이터를 채워 넣습니다. 여기서는 Jennifer Marlo, 444204240, 26, Female을 입력했습니다.

- 마지막으로 Enter Data(데이터 입력)를 클릭합니다.
새 데이터가 데이터베이스의 마지막 행에 입력된 것을 확인할 수 있습니다.

더 알아보기: UserForm 없이 엑셀 데이터 입력 양식 만드는 방법
기억해야 할 사항
- 새 데이터를 입력할 때 코드는 UserForm 내 TextBox의 배치 순서를 그대로 따릅니다. 따라서 UserForm에 TextBox를 추가할 때는 데이터베이스의 열 순서와 동일한 순서를 유지해야 합니다.
결론
지금까지 엑셀 VBA를 활용해 데이터베이스용 데이터 입력 양식을 만드는 방법을 살펴보았습니다. 궁금한 점이 있다면 언제든지 문의해 주세요. 더 많은 팁과 최신 소식은 ExcelDemy 사이트에서 확인하실 수 있습니다.
함께 읽으면 좋은 관련 글
- 엑셀에서 자동 채우기(Autofill) 양식 만드는 방법(단계별 가이드)
- 엑셀에서 드롭다운 목록이 있는 데이터 입력 양식 만들기(2가지 방법)
- 엑셀 데이터 입력 자동화하는 방법(2가지 효과적인 방법)
- 엑셀 셀 데이터 입력 제한하기(2가지 간단한 방법)