엑셀 VBA에서 Str 함수는 숫자를 문자열(String)로 변환하는 함수입니다.
즉, 숫자를 텍스트로 변환할 때 유용합니다.
1. 기본 문법
Str(숫자)
|
- 숫자 → 변환할 숫자
📌 숫자를 문자열로 변환
📌 양수는 앞에 공백(" ")이 추가됨
📌 음수는 "-" 기호가 앞에 붙음
📌 소수점(.)과 숫자는 유지됨
2. 기본 사용 예제
Sub 기본_Str()
Dim 결과 As String
결과 = Str(123)
MsgBox 결과
End Sub
|
📌 출력: " 123" (앞에 공백 포함)
📌 숫자 123이 문자열로 변환됨
3. 음수 변환
Sub 음수_Str()
Dim 결과 As String
결과 = Str(-123)
MsgBox 결과
End Sub
|
📌 출력: "-123" (음수는 앞에 -가 붙음)
4. 소수 변환
Sub 소수_Str()
Dim 결과 As String
결과 = Str(3.14)
MsgBox 결과
End Sub
|
📌 출력: " 3.14" (앞에 공백 포함)
5. 앞 공백 제거 (Trim 사용)
Sub 공백제거_Str()
Dim 결과 As String
결과 = Trim(Str(456))
MsgBox 결과
End Sub
|
📌 출력: "456" (앞 공백 제거)
📌 양수 변환 시 생기는 공백을 Trim으로 제거 가능
6. 숫자를 텍스트로 변환하여 셀에 저장
Sub 셀_숫자문자변환()
Dim 숫자 As Integer
숫자 = 789
Range("A1").Value = Str(숫자)
End Sub
|
📌 A1 셀에 " 789" (앞 공백 포함) 저장
📌 엑셀에서 문자열로 인식되며 숫자로 계산되지 않음
7. 숫자를 텍스트로 변환 후 합치기
Sub 숫자_텍스트_연결()
Dim 결과 As String
결과 = "번호: " & Trim(Str(1001))
MsgBox 결과
End Sub
|
📌 출력: "번호: 1001"
📌 공백을 제거하고 텍스트와 숫자를 연결
8. 셀 값이 숫자인 경우 문자열로 변환
Sub 셀_숫자_문자열변환()
Dim 셀값 As Variant
셀값 = Range("A1").Value
Range("B1").Value = Trim(Str(셀값))
End Sub
|
📌 A1 셀 값이 숫자인 경우 문자열로 변환하여 B1에 저장
9. 배열에서 숫자를 문자열로 변환
Sub 배열_숫자_문자열변환()
Dim arr(1 To 3) As String
arr(1) = Trim(Str(10))
arr(2) = Trim(Str(20))
arr(3) = Trim(Str(30))
MsgBox "변환된 값: " & arr(1) & ", " & arr(2) & ", " & arr(3)
End Sub
|
📌 출력: "변환된 값: 10, 20, 30"
📌 배열에서 숫자를 문자열로 변환하여 저장 후 출력
10. 숫자 변환 후 문자열 비교 (Str vs CStr)
함수
|
설명
|
Str(123)
|
" 123" → 앞에 공백 포함
|
CStr(123)
|
"123" → 앞에 공백 없음
|
Trim(Str(123))
|
"123" → 공백 제거됨
|
📌 Str 함수는 양수 앞에 공백이 생기므로 Trim을 함께 사용하는 것이 좋음
📌 정확한 변환을 위해 CStr을 사용하는 것이 더 안정적
11. Str vs CStr 비교 예제
Sub Str_CStr_비교()
Dim 결과1 As String, 결과2 As String
결과1 = Str(100)
결과2 = CStr(100)
MsgBox "Str: '" & 결과1 & "' (공백 포함)" & vbNewLine & "CStr: '" & 결과2 & "' (공백 없음)"
End Sub
|
📌 출력:
Str: ' 100' (공백 포함)
CStr: '100' (공백 없음)
|
📌 숫자를 문자열로 변환할 때 Str은 공백 포함, CStr은 공백 없음
📝 정리
기능
|
VBA 코드
|
숫자를 문자열로 변환
|
Str(123) → " 123"
|
음수 변환
|
Str(-123) → "-123"
|
소수 변환
|
Str(3.14) → " 3.14"
|
공백 제거
|
Trim(Str(456)) → "456"
|
숫자를 문자열로 변환하여 셀에 저장
|
Range("A1").Value = Str(789)
|
숫자를 텍스트로 변환 후 합치기
|
"번호: " & Trim(Str(1001))
|
배열에서 숫자를 문자열로 변환
|
arr(1) = Trim(Str(10))
|
Str vs CStr 비교
|
Str(100) → " 100", CStr(100) → "100"
|
🔥 VBA의 Str을 활용하면 숫자를 문자열로 쉽게 변환할 수 있습니다! 🚀