엑셀 VBA에서 Left 함수는 문자열의 왼쪽에서 지정한 개수만큼 문자를 가져오는 함수입니다.
즉, 텍스트에서 특정 길이만큼 앞부분을 추출할 때 유용합니다.
1. 기본 문법
Left(문자열, 개수)
|
- 문자열 → 원본 문자열
- 개수 → 왼쪽에서 가져올 문자 개수
📌 왼쪽부터 개수만큼의 문자만 반환
📌 개수가 문자열 길이보다 크면 전체 문자열 반환
2. 기본 사용 예제
Sub 기본_Left()
Dim 결과 As String
결과 = Left("안녕하세요 VBA!", 5)
MsgBox 결과
End Sub
|
📌 출력: "안녕하세요 V"
📌 왼쪽에서 5글자 가져오기
3. 이름에서 성만 추출
Sub 성_추출()
Dim 이름 As String, 성 As String
이름 = "홍길동"
성 = Left(이름, 1)
MsgBox "성: " & 성
End Sub
|
📌 출력: "성: 홍"
4. 전화번호 앞자리 추출
Sub 전화번호_앞자리()
Dim 번호 As String
번호 = "010-1234-5678"
MsgBox Left(번호, 3)
End Sub
|
📌 출력: "010"
📌 왼쪽에서 3글자 가져오기
5. 셀 값에서 왼쪽 문자열 가져오기
Sub 셀_Left()
Dim 셀값 As String
셀값 = Range("A1").Value
Range("B1").Value = Left(셀값, 5)
End Sub
|
📌 A1 셀의 값에서 왼쪽 5글자를 추출하여 B1에 저장
📌 "Excel VBA Function" → "Excel"
6. 목록에서 특정 부분만 추출
Sub 여러셀_Left()
Dim rng As Range, cell As Range
Set rng = Range("A1:A10")
For Each cell In rng
If Not IsEmpty(cell.Value) Then
cell.Offset(0, 1).Value = Left(cell.Value, 3)
End If
Next cell
End Sub
|
📌 A1:A10의 값에서 왼쪽 3글자를 B1:B10에 저장
📌 "서울특별시 강남구" → "서울특"
7. 이메일 아이디만 추출
Sub 이메일_아이디()
Dim 이메일 As String, 위치 As Integer, 아이디 As String
이메일 = "example@gmail.com"
위치 = InStr(1, 이메일, "@")
아이디 = Left(이메일, 위치 - 1)
MsgBox "이메일 아이디: " & 아이디
End Sub
|
📌 "example@gmail.com"에서 "example"만 추출
📌 InStr 함수로 @ 위치 찾은 후 Left로 아이디 부분만 가져오기
8. 문장에서 특정 단어까지 가져오기
Sub 특정단어_까지()
Dim 문장 As String, 위치 As Integer, 결과 As String
문장 = "엑셀 VBA 프로그래밍"
위치 = InStr(1, 문장, "VBA") ' "VBA" 위치 찾기
결과 = Left(문장, 위치 - 1) ' "VBA" 앞부분만 추출
MsgBox 결과
End Sub
|
📌 출력: "엑셀 "
📌 "VBA" 앞부분만 가져오기
9. 파일 경로에서 폴더만 추출
Sub 폴더_추출()
Dim 경로 As String, 위치 As Integer, 폴더 As String
경로 = "C:\Users\하임\Documents\파일.xlsx"
위치 = InStrRev(경로, "\") ' 마지막 "\" 위치 찾기
폴더 = Left(경로, 위치 - 1) ' 마지막 "\" 앞부분만 추출
MsgBox "폴더 경로: " & 폴더
End Sub
|
📌 파일명 제외하고 폴더 경로만 가져오기 (InStrRev 활용)
10. 텍스트에서 숫자만 추출
Sub 숫자만_추출()
Dim 원본 As String, 결과 As String
원본 = "123ABC456"
Dim i As Integer
For i = 1 To Len(원본)
If IsNumeric(Mid(원본, i, 1)) Then
결과 = 결과 & Mid(원본, i, 1)
End If
Next i
MsgBox "숫자만 추출: " & 결과
End Sub
|
📌 출력: "123456"
📌 문자와 숫자가 섞인 문자열에서 숫자만 남기기
📝 정리
기능
|
VBA 코드
|
왼쪽 5글자 가져오기
|
Left("안녕하세요 VBA!", 5)
|
이름에서 성만 추출
|
Left("홍길동", 1)
|
전화번호 앞자리 추출
|
Left("010-1234-5678", 3)
|
셀 값에서 추출
|
Left(Range("A1").Value, 5)
|
이메일 아이디만 추출
|
Left("example@gmail.com", InStr(1, "example@gmail.com", "@") - 1)
|
특정 단어까지 가져오기
|
Left(문장, InStr(1, 문장, "단어") - 1)
|
파일 경로에서 폴더만 추출
|
Left(경로, InStrRev(경로, "\") - 1)
|
숫자만 추출
|
If IsNumeric(Mid(문자열, i, 1)) Then 결과 = 결과 & Mid(문자열, i, 1)
|
🔥 VBA의 Left를 활용하면 문자열을 쉽게 추출하고 정리할 수 있습니다! 🚀