본문 바로가기
엑셀

데이터유효성 검사 오류메시지 작성

by 오늘의 배움터 2025. 6. 11.
반응형

엑셀을 사용하다 보면, 잘못된 데이터 입력으로 인해 업무 효율이 떨어지거나 분석 결과에 오류가 생기는 경우가 많습니다.

이럴 때 꼭 필요한 기능이 바로 데이터 유효성 검사입니다. 데이터 유효성 검사의 개념부터 오류 메시지 설정, 실무에서 자주 쓰는 활용법, 그리고 VBA를 활용한 자동화 방법까지 자세히 정리해드립니다.

데이터유효성 검사 오류메시지 작성

 

1. 데이터 유효성 검사란?

데이터 유효성 검사는 엑셀에서 사용자가 셀에 입력할 수 있는 값의 종류나 범위를 제한하는 기능입니다. 

예를 들어, 나이 입력란에는 숫자만, 이메일 입력란에는 이메일 형식만, 날짜 입력란에는 날짜만 입력하도록 제한할 수 있습니다. 

이를 통해 잘못된 데이터가 입력되는 것을 미리 방지할 수 있어 데이터의 정확성과 일관성을 높여줍니다.

2. 데이터 유효성 검사 설정 방법

  • 적용할 셀 범위 선택
  • [데이터] 탭 → [데이터 유효성 검사] 클릭
  • 조건 설정(예: 정수, 날짜, 목록 등)
  • [오류 메시지] 탭에서 사용자 맞춤 오류 메시지 입력

 

 

오류 메시지 설정 팁

  • 오류 경고 스타일:
    중지(Stop): 잘못된 값 입력 시 입력 자체를 막음
    경고(Warning): 경고창을 띄우고 입력 여부를 선택할 수 있음
    정보(Information): 안내 메시지만 표시
  • 오류 제목/메시지 예시
    오류 제목: "입력 오류"
    오류 메시지: "1~100 사이의 숫자만 입력 가능합니다."

3. 실무에서 자주 쓰는 데이터 유효성 검사 예시

  • 숫자 범위 제한:
    예) 1~100 사이의 값만 입력 가능하도록 설정
  • 목록 제한:
    예) 부서명, 지역명 등 미리 정의된 목록에서만 선택
  • 텍스트 길이 제한:
    예) 이름은 10자 이하만 입력 가능
  • 날짜 제한:
    예) 오늘 이후의 날짜만 입력 가능

 

4. VBA로 데이터 유효성 검사 자동화하기

반복적으로 유효성 검사를 설정해야 하거나, 더 복잡한 조건이 필요한 경우 VBA를 활용하면 자동화가 가능합니다.

VBA 예제: 텍스트 길이와 숫자 제한

Sub ApplyDataValidation()
    Dim ws As Worksheet
    Dim rng As Range
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A2:B10")
    
    ' 기존 유효성 검사 삭제
    rng.Validation.Delete
    
    ' 텍스트 길이 10자 이하
    rng.Columns(1).Validation.Add _
        Type:=xlValidateTextLength, _
        Operator:=xlLessEqual, _
        Formula1:="10"
    rng.Columns(1).Validation.InputTitle = "이름 입력"
    rng.Columns(1).Validation.InputMessage = "이름은 10자 이하로 입력하세요."
    rng.Columns(1).Validation.ErrorTitle = "입력 오류"
    rng.Columns(1).Validation.ErrorMessage = "10자 이하로 입력해야 합니다."
    rng.Columns(1).Validation.ErrorStyle = xlValidAlertStop
    
    ' 숫자만 입력
    rng.Columns(2).Validation.Add _
        Type:=xlValidateWholeNumber, _
        Operator:=xlBetween, _
        Formula1:="1", _
        Formula2:="100"
    rng.Columns(2).Validation.InputTitle = "점수 입력"
    rng.Columns(2).Validation.InputMessage = "1~100 사이의 숫자만 입력하세요."
    rng.Columns(2).Validation.ErrorTitle = "입력 오류"
    rng.Columns(2).Validation.ErrorMessage = "1~100 사이의 숫자만 입력할 수 있습니다."
    rng.Columns(2).Validation.ErrorStyle = xlValidAlertStop
End Sub

 

이 코드는 Sheet1의 A2:B10 범위에 각각 텍스트 길이와 숫자 제한을 자동으로 적용합니다.

5. 실시간 유효성 검사와 사용자 정의 오류 메시지

VBA의 Worksheet_Change 이벤트를 활용하면, 실시간으로 입력값을 체크하고 오류 메시지를 띄울 수 있습니다.

예시: 이메일 형식 검사

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
        If Not InStr(Target.Value, "@") Or Not InStr(Target.Value, ".") Then
            MsgBox "이메일 형식으로 작성해주세요.", vbExclamation
            Target.ClearContents
        End If
    End If
End Sub

 

이렇게 하면 사용자가 잘못된 이메일을 입력했을 때 즉시 안내 메시지가 나오고, 잘못된 값은 자동으로 삭제됩니다.

 

엑셀의 데이터 유효성 검사와 오류 메시지 기능을 적극적으로 활용하면, 데이터 입력 실수를 크게 줄이고 업무 효율을 높일 수 있습니다. 반복 업무에는 VBA 자동화까지 더하면 더욱 강력한 데이터 관리가 가능합니다.
여러분도 오늘부터 데이터 유효성 검사를 적극 활용해보세요!

반응형