데이터 유효성 목록상자 기본값 설정
간단한 설정으로 데이터유효성 검사 목록상자의 기본값 표시 방법을 알아봅니다.
이 강의에서는 데이터 유효성 목록 상자에 '값을 선택하세요' 와 같은 안내 문구를 기본값으로 자동 표시하는 세 가지 방법을 다룹니다. 셀 정렬을 활용한 기본 방식, 오류 메시지 설정을 응용한 방법, 그리고 매크로를 이용해 병합된 셀에서도 동일하게 동작하는 방법까지 단계별로 정리하여, 양식 입력 화면의 사용성을 한층 끌어올릴 수 있습니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
데이터 유효성 목록 상자 만들기
데이터 유효성 목록 상자는 지정한 셀에 입력할 수 있는 값을 특정 범위 또는 목록 안의 값으로만 제한하는 기능입니다.

예를 들어 [ 상의, 하의, 자켓, 블라우스 ] 와 같이 네 가지 제품 구분 중 하나만 입력해야 하는 상황에서 데이터 유효성 목록 상자를 활용하면, 정해진 네 개의 값 중 하나만 선택해서 입력하도록 구성할 수 있습니다.
- 예제파일의 C9 셀을 선택한 뒤, [ 데이터 - 데이터 유효성 검사 - 데이터 유효성 검사 ] 로 이동합니다.

- 제한 대상으로 '목록'을 선택한 뒤, 원본 범위로 H9:H18 범위를 지정합니다. 확인 버튼을 눌러 창을 닫습니다.

- 데이터 유효성 검사 목록 상자가 정상적으로 적용되었습니다.

- 원본 범위에 새 데이터가 추가될 때 범위가 자동으로 확장되도록 하려면 표 기능이나 동적 범위를 활용합니다. 동적 범위에 대한 자세한 내용은 아래 OFFSET 동적 범위 기초 강의를 참고합니다.
방법 1: 셀 정렬 기능 활용
이번에는 데이터 유효성 목록 상자에 기본값을 표시하는 방법을 살펴봅니다. 예를 들어 아무런 값도 선택되지 않은 상태에서 '----- 값을 선택하세요 ------' 와 같은 안내 문구가 자동으로 출력되도록 설정할 수 있습니다.
셀 정렬 기능을 활용하면 데이터 유효성 목록뿐 아니라 주변 셀이 비어 있을 때 기본값을 손쉽게 표시할 수 있습니다.
- 알파벳 'C'를 클릭하여 C열을 전체 선택한 뒤, 우클릭 - 삽입을 클릭하여 새 열을 추가합니다. (단축키 Ctrl + Shift + +)

- C9 셀을 선택한 뒤, [ '----- 값을 입력하세요 ----- ] 를 입력합니다. (이때 앞에 작은따옴표(')를 함께 입력하는 것에 주의합니다.)

- 키보드 Ctrl 키를 누른 채로 D9, D12, D15, ... D27 셀까지 기존 데이터 유효성 목록이 설정된 셀을 모두 선택합니다. 선택한 셀을 우클릭하여 '셀 서식'으로 이동합니다.

- '테두리' 탭으로 이동한 뒤, 왼쪽 테두리를 '없음'으로 설정합니다. 확인을 눌러 창을 닫습니다.

- C9 셀을 선택한 뒤, 우클릭하여 셀 서식으로 이동합니다. 이번에는 위쪽·아래쪽·왼쪽 테두리를 추가한 뒤, 확인을 눌러 창을 닫습니다.

- C9 셀을 복사합니다. 이후 C9, C12, C15, ... C27 까지 범위를 선택한 뒤, Ctrl + V 로 복사한 값을 붙여넣기 합니다.

- C열을 전체 선택한 뒤, 홈 탭의 맞춤 그룹에서 '들여쓰기' 버튼을 클릭하여 한 번 들여쓰기 합니다.

- C열이 선택된 상태에서 우클릭하여 열 너비로 이동합니다. 열 너비를 0.05로 변경합니다.

- 데이터 유효성 목록 기본값 설정이 완료되었습니다.

셀 정렬 기능을 활용한 기본값 표시 방법에는 한 가지 제한이 있습니다. 바로 유효성 검사가 적용된 셀이 병합되어 있을 경우에는 기본값이 표시되지 않는다는 점입니다.
이런 상황에서는 아래의 두 번째, 세 번째 방법을 사용합니다.

방법 2: 오류 메시지 설정 활용
- 데이터 유효성 검사가 적용된 셀을 선택한 뒤, [ 데이터 - 데이터 유효성 검사 - 데이터 유효성 검사 ] 로 이동합니다.

- '오류 메시지' 탭으로 이동한 뒤, '유효하지 않은 데이터를 입력하면 오류 메시지 표시' 체크박스를 비활성화합니다. '확인' 버튼을 눌러 창을 닫습니다.

- 셀에 기본값을 입력합니다.

- 다시 데이터 유효성 검사 설정으로 이동한 뒤, 체크박스를 활성화합니다. '확인' 버튼을 눌러 창을 종료합니다.

- 데이터 유효성 목록 기본값 설정이 완료되었습니다. 단, 두 번째 방법은 유효성 검사 값을 입력하기 전 최초 한 번만 기본값이 출력되며, 한 번 값을 선택하면 그 이후에는 기본값이 표시되지 않는다는 한계가 있습니다.

방법 3: 매크로 활용
매크로를 사용하면 병합된 셀에 적용된 데이터 유효성 목록에서도 기본값을 표시할 수 있습니다. 아래에 완성된 전체 코드를 제공하므로, 셀 주소와 안내 문구만 상황에 맞게 수정하면 데이터 유효성 목록의 기본값을 손쉽게 적용할 수 있습니다.
- [ 개발 도구 - Visual Basic ] 을 클릭하거나 단축키 Alt + F11 키를 눌러 매크로 편집기로 이동합니다. 개발 도구가 보이지 않을 경우, 아래 개발 도구 활성화 방법 관련 강의를 참고합니다.

- 데이터 유효성 목록 상자의 기본값을 적용할 시트를 더블클릭하면 시트 모듈이 활성화됩니다.

- 아래 명령문을 복사한 뒤, 시트 모듈 안에 붙여넣기 합니다.
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Dim sRng As String: Dim vRngs As Variant: Dim vRng As Variant Dim sMsg As String Application.EnableEvents = False ' 데이터 유효성 검사가 활성화된 셀 주소를 쉼표(,) 로 구분하여 입력하세요. sRng = "셀1, 셀2, 셀3" ' 데이터 유효성 검사 기본값으로 출력 될 메세지를 입력하세요. sMsg = "------ 값을 선택하세요 ----- " vRngs = Split(sRng, ",") For Each vRng In vRngs If Trim(vRng) = Target.Resize(1, 1).Address(0, 0) Then On Error GoTo EH: If Len(Target.Text) = 0 Then On Error Resume Next Target.Validation.ShowError = False Target.Value = sMsg Target.Validation.ShowError = True Exit For End If End If Next EH: Application.EnableEvents = True End Sub
- sRng = "셀1, 셀2, 셀3" 부분을 실제 데이터 유효성 목록이 적용된 셀 주소로 변경합니다. (예제파일 기준 D9, D12, D15, ... D27)
sRng = "D9, D12, D15, D18, D21, D24, D27"
- sMsg = "------ 값을 선택하세요 ----- " 부분을 실제로 출력할 데이터 유효성 목록 상자의 기본값으로 변경합니다.
sMsg = "------ ★★ 값을 선택하세요 ★★ ------"
- 이후 Sheet1 로 이동한 뒤 데이터 유효성 목록 상자의 값을 지우면 매크로에 입력한 기본값이 자동으로 표시됩니다.


례제에서 매크로가 잘 안됩니다. 그대로 했는데 웬일가요?
무엇이 잘못되였는지, 매크로기능이 체계와 무슨 관계라도 있는지요?
많은 방조 바라면서, 😍
VBA로 메일을 보내는 방법은 아래 VBA 강의에서 자세히 정리했으니 확인해보시길 바랍니다.
https://www.oppadu.com/%ec%97%91%ec%85%80-%eb%a9%94%ec%9d%bc-%eb%b3%b4%eb%82%b4%ea%b8%b0-%ec%95%84%ec%9b%83%eb%a3%a9-%eb%a7%a4%ed%81%ac%eb%a1%9c/
VBA 기초에 대한 전반적인 내용은 아래 위캔두 멤버쉽 마스터 클래스를 확인해보세요.
https://www.oppadu.com/%ec%97%91%ec%85%80-live-101%ea%b0%95/
감사합니다.