VBA Function

Like 연산자

노만e 2025. 3. 15. 05:19

엑셀 VBA에서 Like 연산자는 문자열 패턴을 비교하는 연산자입니다.

즉, 특정 문자열이 특정 패턴과 일치하는지 여부를 확인할 때 사용됩니다.


1. Like 연산자의 기본 문법

결과 = 문자열 Like 패턴

📌 일치하면 True, 불일치하면 False 반환


2. Like 연산자 사용 예제

Sub Like_예제()
Dim 결과 As Boolean
결과 = "Hello123" Like "Hello*" ' True 반환 (Hello로 시작하는 문자열)
MsgBox 결과
End Sub

📌 *는 "Hello" 뒤에 어떤 문자열이 와도 됨을 의미


3. Like 연산자 패턴 종류

✅ 1) * : 0개 이상의 문자와 일치 (와일드카드)

Debug.Print "Excel" Like "E*"
' True (E로 시작하는 모든 문자열)

📌 E*는 "E"로 시작하는 모든 문자열과 일치

Debug.Print "Excel VBA" Like "*VBA"
' True (*은 앞에 어떤 문자열이 와도 됨)

📌 *VBA는 "VBA"로 끝나는 모든 문자열과 일치


✅ 2) ? : 임의의 한 글자와 일치

Debug.Print "Cat" Like "C?t"
' True (C로 시작하고 t로 끝나는 3글자 문자열)
Debug.Print "Coat" Like "C?t"
' False ("oat"는 3글자가 아님)

📌 "Coat"는 4글자라서 불일치


✅ 3) # : 숫자(0~9)와 일치

Debug.Print "A2B" Like "A#B"
' True ("A"와 "B" 사이에 숫자가 1개 있는 경우)

📌 A#B는 "A"와 "B" 사이에 숫자가 하나 있어야 함

Debug.Print "AB" Like "A#B"
' False (숫자가 없음)

📌 숫자가 없는 경우는 불일치


✅ 4) [ ] : 대괄호 안의 문자 중 하나와 일치

Debug.Print "Dog" Like "D[aeiou]g"
' True ("D"와 "g" 사이에 모음 하나가 있으면 True)

📌 D[aeiou]g는 "Dag", "Deg", "Dig", "Dog", "Dug"와 일치

Debug.Print "Dkg" Like "D[aeiou]g"
' False (k는 모음이 아님)

📌 "Dkg"는 불일치


✅ 5) [! ] : 대괄호 안에 없는 문자와 일치 (NOT)

Debug.Print "Dxg" Like "D[!aeiou]g"
' True ("D"와 "g" 사이에 모음이 아닌 문자가 있어야 함)

📌 D[!aeiou]g는 "Dag", "Deg", "Dig", "Dog", "Dug"를 제외한 모든 문자와 일치

Debug.Print "Dog" Like "D[!aeiou]g"
' False ("o"는 모음이므로 불일치)

📌 "Dog"는 o가 포함되어 있어 불일치


✅ 6) [-] : 문자 범위 지정

Debug.Print "C2" Like "C[1-5]"
' True (C와 1~5 사이 숫자가 일치)

📌 C[1-5]는 "C1", "C2", "C3", "C4", "C5"와 일치

Debug.Print "C6" Like "C[1-5]"
' False ("6"은 범위에 없음)

📌 "C6"는 1~5 범위가 아니라 불일치


4. Like 연산자 실전 활용 예제

✅ 1) 이메일 형식 검사

Function 이메일검사(이메일 As String) As Boolean
이메일검사 = 이메일 Like "*@*.*"
End Function
Sub 테스트_이메일()
MsgBox 이메일검사("test@example.com") ' True 반환
MsgBox 이메일검사("invalid-email") ' False 반환
End Sub

📌 *@*.*는 이메일 형식과 유사한 패턴 검사 가능


✅ 2) 파일 확장자 검사 (.xls, .xlsx)

Function 엑셀파일확인(파일명 As String) As Boolean
엑셀파일확인 = 파일명 Like "*.xls*"
End Function
Sub 테스트_엑셀파일()
MsgBox 엑셀파일확인("data.xlsx") ' True
MsgBox 엑셀파일확인("document.pdf") ' False
End Sub

📌 .xls*는 .xls, .xlsx, .xlsm 등을 포함하는 모든 엑셀 파일을 검사


✅ 3) 전화번호 패턴 검사 (010-####-####)

Function 전화번호검사(번호 As String) As Boolean
전화번호검사 = 번호 Like "010-####-####"
End Function
Sub 테스트_전화번호()
MsgBox 전화번호검사("010-1234-5678") ' True
MsgBox 전화번호검사("02-123-4567") ' False
End Sub

📌 "010-####-####" 패턴으로 휴대폰 번호 형식 검사 가능


✅ 4) 특정 단어 포함 여부 검사

Function 특정단어검사(문자열 As String) As Boolean
특정단어검사 = 문자열 Like "*VBA*"
End Function
Sub 테스트_단어검사()
MsgBox 특정단어검사("I love VBA programming") ' True
MsgBox 특정단어검사("Excel Macro") ' False
End Sub

📌 "VBA"가 포함된 문자열인지 검사 (*VBA*)


📌 정리

🚀 VBA의 Like

패턴
설명
예제
*
0개 이상의 문자
"Excel" Like "E*"True
?
정확히 1개의 문자
"Cat" Like "C?t"True
#
1개의 숫자(0~9)
"A2B" Like "A#B"True
[ ]
대괄호 안의 문자 중 하나
"Dog" Like "D[aeiou]g"True
[! ]
대괄호 안의 문자 제외
"Dxg" Like "D[!aeiou]g"True
[x-y]
문자 범위 지정
"C3" Like "C[1-5]"True

연산자를 활용하면 문자열 패턴을 쉽게 검사할 수 있습니다! 🔥