VBA에서 문자열을 숫자로 변환

Iqra Hasnain 2022년5월26일
VBA에서 문자열을 숫자로 변환

이 기사에서는 VBA Excel에서 문자열을 숫자로 변환하는 방법에 대해 설명합니다. 단계별 가이드와 우리의 이해를 위한 많은 예가 있습니다.

VBA에서 문자열을 숫자로 변환

VBA 코드에서 텍스트로 저장된 숫자를 실수로 변환하는 것은 필수입니다. 우리는 많은 변환 옵션을 가지고 있습니다.

문자열을 Byte, Integer, Long, Single, Double, Currency 및 Decimal 데이터 유형의 숫자로 변환할 수 있습니다. 각 변환에 대해 예를 들어 자세히 설명합니다.

VBA에서 문자열을 바이트로 변환

다음 코드를 사용하여 문자열을 여러 바이트 데이터 유형으로 쉽게 변환할 수 있습니다.

# vba
byte = CByte(str)

CByte() 함수를 사용하여 이 변환을 수행할 수 있습니다. 위의 명령문에는 CByte()와 string의 두 항목이 있습니다.

CByte() 함수는 문자열을 바이트 유형으로 강제 변경합니다. CByte()는 국제적으로 인식되는 문자열을 바이트 데이터 유형으로 변환하는 데 자주 사용됩니다.

간단히 말해서 CByte()는 일반적으로 고유한 소수점/천 단위 구분 기호와 컴퓨터 위치에 따라 달라지는 많은 통화 옵션을 구별합니다. byte 데이터 타입이 담을 수 있는 범위는 0~225입니다. 문자열이 이 범위에 포함되지 않으면 오류가 발생합니다.

다음은 문자열을 바이트로 변환하기 위한 인수로 convertStr이 있는 매크로 예제입니다.

# vba
Function convertStr(newStr As Variant)

    MsgBox (CByte(newStr))

End Function

Sub newFunc()
convertStr ("12")
End Sub

출력:

VBA에서 문자열을 숫자로 바이트로 변환

VBA에서 문자열을 정수로 변환

다음 명령문의 도움으로 문자열을 정수 데이터 유형의 숫자로 쉽게 변환할 수 있습니다. 이 함수의 구문은 다음과 같습니다.

# vba
CInt(newStr)

문자열을 정수 데이터 유형으로 변경하려면 Clnt() 함수를 사용하는 것이 좋습니다. 이 함수는 문자열을 정수 데이터 유형으로 강제 변경합니다.

문자열에 분수가 있는 경우 이 함수는 이를 정수로 변환합니다. 분수가 정확히 0.4인 경우 이 함수는 가장 가까운 짝수로 변경합니다.

예를 들어:

# vba
0.4 will become 0.
1.6 and 2.4 both will become 2.
3.7 and 4.3 will become 4

‘Clnt()‘는 국제적으로 인식되는 문자열을 정수 데이터 유형으로 변환하는 데 자주 사용됩니다. 간단히 말해서 Clnt()는 일반적으로 컴퓨터 위치에 따라 달라지는 고유한 소수점/천 단위 구분 기호와 많은 통화 옵션을 구별합니다.

정수 데이터 유형이 숫자를 보유할 수 있는 범위는 -32,768 ~ 32,767입니다. 문자열이 이 범위에 포함되지 않으면 오류가 발생합니다.

예제를 통해 아래와 같이 CInt() 함수를 사용해 보겠습니다. 이 예제에서는 newStr을 아래와 같이 문자열을 정수로 변경하는 인수로 설정합니다.

# vba
Function convertToInteger(newStr As Variant)

    MsgBox (CInt(newStr))

End Function

Sub newFunc()
convertToInteger ("12.5")
End Sub

출력:

VBA에서 문자열을 int로 숫자로 변환

VBA에서 문자열을 Long으로 변환

CLng() 함수를 사용하여 이 변환을 수행할 수 있습니다. 이 함수의 구문은 다음과 같습니다.

# vba
CLng(Str)

문자열을 여러 개의 긴 데이터 유형으로 변경하는 것이 목표일 때 CLng() 함수를 사용할 수 있습니다. 이 명령문의 항목은 CLng() 및 문자열입니다.

이 함수는 문자열을 긴 데이터 유형으로 강제 변경합니다.

문자열에 분수가 있으면 이 함수는 반올림합니다. 분수가 정확히 0.4인 경우 이 함수는 아래와 같이 가장 가까운 짝수로 변경합니다.

# vba
0.4 will become 0.
1.6 and 2.4 both will become 2.
3.7 and 4.3 will become 4

CLng()는 국제적으로 인식되는 문자열을 긴 데이터 유형으로 변환하는 데 자주 사용됩니다. 간단히 말해서 CLng()는 일반적으로 컴퓨터 위치에 따라 달라지는 고유한 소수점/천 단위 구분 기호와 많은 통화 옵션을 구별합니다.

정수 데이터 형식이 숫자를 담을 수 있는 범위는 -2,147,483,648 ~ 2,147,483,647입니다. 문자열이 이 범위에 포함되지 않으면 오류가 발생합니다.

예제를 통해 CLng() 함수를 사용하겠습니다. 이 예에서는 아래와 같이 newStr을 인수로 설정하여 문자열을 long으로 변경합니다.

# vba
Function convertToLong(newStr As Variant)

    MsgBox (CLng(newStr))

End Function

Sub newFunc()
convertToLong ("15.7")
End Sub

출력:

VBA에서 문자열을 숫자로 변환

Long 데이터 유형은 정수 데이터 유형과 한 가지만 다릅니다. 긴 데이터 유형에서는 더 큰 숫자가 허용됩니다.

하지만 예전에는 메모리가 부족하여 긴 데이터 유형을 사용하는 것이 권장되지 않았습니다.

현대에서 기억은 더 이상 문제가 되지 않습니다. 정수 대신 긴 데이터 유형을 사용할 수 있습니다.

VBA에서 문자열을 단일로 변환

아래와 같이 다음 구문을 사용하여 문자열을 여러 단일 데이터 유형으로 쉽게 변환할 수 있습니다.

# vba
CSng(str)

CSng() 함수를 사용하여 이 변환을 수행할 수 있습니다. 위 명령문에는 CSng()와 string의 두 항목이 있습니다.

이 함수는 문자열을 단일 데이터 유형으로 강제 변경합니다.

CSng()는 국제적으로 인식되는 문자열 변환을 단일 데이터 유형으로 수행하는 데 자주 사용됩니다. CSng()는 일반적으로 컴퓨터 위치에 따라 달라지는 고유한 소수점/천 단위 구분 기호와 통화 옵션을 구별합니다.

단일 데이터 유형이 부동 소수점 숫자를 보유할 수 있는 범위는 다음과 같습니다.

  • 값이 음수인 경우 3.402823E38 ~ -1.401298E-45
  • 값이 양수인 경우 1.401298E-45 ~ 3.402823E38

문자열이 이 범위에 포함되지 않으면 오류가 나타납니다. 아래와 같이 newStr을 인수로 설정하여 문자열을 단일 문자열로 변경하는 예를 살펴보겠습니다.

# vba
Function convertToSingle(newStr As Variant)

    MsgBox (CSng(newStr))

End Function

Sub newFunc()
convertToSingle ("1.3")
End Sub

출력:

VBA에서 문자열을 단일 숫자로 변환

VBA에서 문자열을 Double로 변환

다음 명령문의 도움으로 문자열을 여러 이중 데이터 유형으로 쉽게 변환할 수 있습니다. 이 함수의 구문은 아래와 같습니다.

# vba
CDbl(str)

문자열을 이중 데이터 유형으로 변경하려면 CDbl() 함수를 사용하는 것이 좋습니다. 이 함수는 문자열을 이중 데이터 유형으로 강제 변경합니다.

CDbl()은 국제적으로 인식되는 문자열 변환을 이중 데이터 유형으로 수행하는 데 자주 사용됩니다.

간단히 말해서 CDbl()은 일반적으로 고유한 소수점/천 단위 구분 기호와 컴퓨터 위치에 따라 달라지는 많은 통화 옵션을 구별합니다.

double 데이터 유형이 부동 소수점 숫자를 보유할 수 있는 범위는 다음과 같습니다.

  • 값이 음수인 경우 -1.79769313486231E308 ~ -4.94065645841247E-324입니다.
  • 값이 양수인 경우 4.94065645841247E-324 ~ 1.79769313486232E308입니다.

문자열이 이 범위에 포함되지 않으면 오류가 나타납니다. 아래와 같이 newStr을 인수로 설정하여 문자열을 double로 변경하는 예를 살펴보겠습니다.

# vba
Function convertToDouble(newStr As Variant)

    MsgBox (CDbl(newStr))

End Function

Sub newFunc()
convertToDouble ("1.345")
End Sub

출력:

VBA에서 문자열을 숫자로 double로 변환

VBA에서 문자열을 통화로 변환

다음 명령문을 사용하여 문자열을 여러 통화 데이터 유형으로 쉽게 변환할 수 있습니다. 함수의 구문은 다음과 같습니다.

# vba
CCur(newStr)

문자열을 통화 데이터 유형으로 변경하려면 CCur() 함수를 사용하는 것이 좋습니다. 이 함수는 문자열이 통화 데이터 유형으로 변경되도록 합니다.

‘CCur()‘는 국제적으로 인식되는 문자열을 통화 데이터 유형으로 변환하는 데 자주 사용됩니다.

CCur()는 일반적으로 컴퓨터 위치에 따라 달라지는 고유한 소수점/천 단위 구분 기호와 많은 통화 옵션을 구별합니다. 통화 데이터 유형은 10,000까지 정수를 보유할 수 있습니다.

결과적으로 통화는 소수점 왼쪽에 15개의 숫자를, 소수점 오른쪽에 4개의 숫자를 저장할 수 있습니다. 따라서 통화가 숫자를 보유할 수 있는 범위는 다음과 같습니다.
-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807.

문자열이 이 범위에 포함되지 않으면 오류가 나타납니다.

아래와 같이 newStr을 인수로 설정하여 문자열을 통화로 바꾸는 예를 살펴보겠습니다.

# vba
Function convertToCurrency(newStr As Variant)

    msgBox(CCur(newStr))

End Function

VBA에서 문자열을 10진수로 변환

이 변환을 달성하기 위해 다음 문을 사용할 수 있습니다.

# vba
CDec(newStr)

우리의 목표가 문자열을 여러 십진수 데이터 유형으로 변경하는 것인 경우 CDec() 함수를 사용할 수 있습니다. 이 함수는 문자열이 Variant 데이터 유형의 10진수 데이터 하위 유형으로 변경되도록 합니다.

간단히 말해서 CDec()은 Decimal 하위 유형으로 변경된 변형을 반환합니다.

CDec()은 국제적으로 인식되는 문자열을 십진수 데이터 유형으로 변환하는 데 자주 사용됩니다. 이는 CDec()이 일반적으로 고유한 소수점/천 단위 구분 기호와 컴퓨터 위치에 따라 달라지는 많은 통화 옵션을 구별한다는 것을 의미합니다.

10진수 데이터 유형은 10의 가변 거듭제곱을 갖는 정수를 포함할 수 있습니다. 거듭제곱은 소수점 오른쪽에 나타날 수 있는 자릿수를 나타냅니다.

소수가 값을 담을 수 있는 범위는 다음과 같습니다.

  • 스케일이 0일 때 소수점이 없는 경우 범위는 79,228,162,514,264,337,593,543,950,335에서 79,228,162,514,264,337,593,543,950,335입니다.
  • 소수점 이하 28자리일 때 가장 큰 값과 가장 작은 값은 +7.9228162514264337593543950335와 -7.9228162514264337593543950335입니다.
  • 0 값을 포함하지 않는 가장 작은 값은 -0.000000000000000000000000001 및 0.0000000000000000000000000001입니다.

아래와 같이 newStr을 인수로 설정하여 문자열을 십진수로 변경하는 예를 살펴보겠습니다.

# vba
Function convertToDecimal(newStr As Variant)

    msgBox(CDec(newStr))

End Function

관련 문장 - VBA String