엑셀 VBA에서 IsNumeric 함수는 주어진 값이 숫자인지 확인하는 데 사용됩니다.
즉, 변수나 셀 값이 숫자인지 판별할 때 유용합니다.
1. 기본 문법
IsNumeric(값)
|
- 반환값
- True → 값이 숫자인 경우
- False → 값이 숫자가 아닌 경우 (문자, 빈 값, 특수문자 등)
2. 기본 사용 예제
Sub 숫자인지_확인()
Dim 값 As Variant
값 = 123
If IsNumeric(값) Then
MsgBox "숫자입니다."
Else
MsgBox "숫자가 아닙니다."
End If
End Sub
|
📌 값 = 123은 숫자이므로 "숫자입니다." 출력
3. 숫자가 아닌 경우
Sub 숫자가_아닌경우()
Dim 값 As Variant
값 = "Hello"
If IsNumeric(값) Then
MsgBox "숫자입니다."
Else
MsgBox "숫자가 아닙니다."
End If
End Sub
|
📌 "Hello"는 숫자가 아니므로 "숫자가 아닙니다." 출력
4. 셀 값이 숫자인지 확인
Sub 셀_숫자확인()
Dim 셀값 As Variant
셀값 = Range("A1").Value
If IsNumeric(셀값) Then
MsgBox "A1 셀은 숫자입니다."
Else
MsgBox "A1 셀은 숫자가 아닙니다."
End If
End Sub
|
📌 A1 셀 값이 숫자면 "A1 셀은 숫자입니다." 출력
📌 문자면 "A1 셀은 숫자가 아닙니다." 출력
5. 여러 셀에서 숫자인 경우 색 변경
Sub 숫자인_셀_색칠()
Dim rng As Range, cell As Range
Set rng = Range("A1:A10") ' 확인할 범위
For Each cell In rng
If IsNumeric(cell.Value) Then
cell.Interior.Color = RGB(144, 238, 144) ' 연한 녹색
Else
cell.Interior.Color = RGB(255, 99, 71) ' 빨간색
End If
Next cell
End Sub
|
📌 A1:A10 범위에서 숫자가 있는 셀은 녹색, 숫자가 아닌 셀은 빨간색으로 변경
6. 사용자 입력값이 숫자인지 확인
Sub 사용자_입력_숫자확인()
Dim 입력값 As Variant
입력값 = InputBox("숫자를 입력하세요.")
If IsNumeric(입력값) Then
MsgBox "입력한 값은 숫자입니다: " & 입력값
Else
MsgBox "숫자만 입력 가능합니다!", vbExclamation
End If
End Sub
|
📌 사용자가 입력한 값이 숫자가 아니면 "숫자만 입력 가능합니다!" 출력
7. 숫자 변환 후 사용 (Val 함수 활용)
Sub 숫자로_변환()
Dim 입력값 As Variant
입력값 = InputBox("숫자를 입력하세요.")
If IsNumeric(입력값) Then
MsgBox "입력한 숫자 + 10 = " & Val(입력값) + 10
Else
MsgBox "숫자만 입력 가능합니다!", vbExclamation
End If
End Sub
|
📌 사용자가 "50"을 입력하면 50 + 10 = 60 출력
8. 숫자가 아닌 데이터 삭제
Sub 숫자가_아닌값_삭제()
Dim rng As Range, cell As Range
Set rng = Range("A1:A10")
For Each cell In rng
If Not IsNumeric(cell.Value) Then
cell.ClearContents ' 숫자가 아닌 값 삭제
End If
Next cell
End Sub
|
📌 A1:A10 범위에서 숫자가 아닌 값만 삭제 (숫자는 유지)
9. 숫자가 아닌 데이터 개수 세기
Sub 숫자가_아닌값_개수()
Dim rng As Range, cell As Range
Dim 개수 As Integer
Set rng = Range("A1:A10")
개수 = 0
For Each cell In rng
If Not IsNumeric(cell.Value) Then
개수 = 개수 + 1
End If
Next cell
MsgBox "숫자가 아닌 셀 개수: " & 개수
End Sub
|
📌 A1:A10 범위에서 숫자가 아닌 셀 개수를 계산하여 메시지 출력
10. 숫자가 아닌 값을 "오류"로 변경
Sub 숫자가_아닌값_오류표시()
Dim rng As Range, cell As Range
Set rng = Range("A1:A10")
For Each cell In rng
If Not IsNumeric(cell.Value) Then
cell.Value = "오류"
End If
Next cell
End Sub
|
📌 A1:A10 범위에서 숫자가 아닌 값을 "오류"로 변경
📝 정리
기능
|
VBA 코드
|
변수가 숫자인지 확인
|
If IsNumeric(x) Then
|
셀 값이 숫자인지 확인
|
If IsNumeric(Range("A1").Value) Then
|
숫자인 경우 색 변경
|
If IsNumeric(cell.Value) Then cell.Interior.Color = RGB(144, 238, 144)
|
사용자 입력값이 숫자인지 확인
|
If IsNumeric(입력값) Then
|
숫자로 변환 (Val 활용)
|
Val(입력값) + 10
|
숫자가 아닌 값 삭제
|
If Not IsNumeric(cell.Value) Then cell.ClearContents
|
숫자가 아닌 데이터 개수 세기
|
If Not IsNumeric(cell.Value) Then 개수 = 개수 + 1
|
숫자가 아닌 값을 "오류"로 변경
|
If Not IsNumeric(cell.Value) Then cell.Value = "오류"
|
🔥 VBA의 IsNumeric을 활용하면 숫자 여부를 판별하여 다양한 작업을 자동화할 수 있습니다! 🚀