VBA 문자열 변수 유형 (Dim String)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 5월 6, 2023

문자열 변수 유형

문자열 데이터 유형은 VBA에서 가장 일반적인 데이터 유형 중 하나입니다. 텍스트의 “문자열”을 저장합니다.

String 변수를 선언하려면 Dim 문(Dimension의 줄임말)을 사용합니다:

Dim strName as String

변수에 값을 할당하려면 등호를 사용합니다:

strName = "Fred Smith"

이를 프로시저에 넣으면 다음과 같습니다:

Sub strExample()
'문자열 변수를 선언합니다
   Dim strName as string
'문자열 변수에 값을 채워넣습니다
    strName = "Fred Smith"
'메시지 박스에 변수의 값을 표시합니다
   MsgBox strname
End Sub

위 코드를 실행하면 다음과 같은 메시지 박스가 표시됩니다.

고정 문자열 변수

문자열 변수에는 고정과 가변의 두 가지 유형이 있습니다.

“가변” 문자열 변수(이전 예시에 표시됨)를 사용하면 문자열의 길이를 원하는 대로 지정할 수 있습니다. 이것이 가장 일반적입니다.

“고정” 문자열 변수는 문자열의 크기를 정의합니다. 고정 문자열은 최대 65,400자를 수용할 수 있습니다.

Dim strName as string *20

고정 변수를 정의하면 더 적은 문자를 사용하더라도 변수의 문자 수는 선언했던 자리수와 동일합니다.

아래의 이미지에서 정의한 변수에 공백이 포함된 것을 확인할 수 있습니다. ‘Fred Smith’가 20자 미만이므로 변수에 문자열의 나머지 문자(공백)에 대한 자리 표시자가 있습니다.

길이를 지정하지 않고 문자열을 선언한 경우 문자열은 전달된 문자 수만큼만 정의됩니다.

모듈 또는 전역 수준에서 문자열 변수 선언하기

이전 예제에서는 프로시저 내에서 String 변수를 선언했습니다. 프로시저로 선언된 변수는 해당 프로시저 내에서만 사용할 수 있습니다.

모듈 또는 전역 수준에서 문자열 변수를 선언할 수도 있습니다.

모듈 수준 변수 선언하기

모듈 수준 변수는 코드 모듈의 맨 위에 Dim 문을 사용하여 선언됩니다.

모듈 수준 변수는 해당 코드 모듈의 모든 프로시저에서 사용할 수 있습니다.

전역 수준 변수 선언하기

전역 수준 변수도 코드 모듈의 맨 위에 선언됩니다. 그러나 Dim 문을 사용하는 대신 Public 문을 사용하여 문자열 변수를 VBA 프로젝트 전체에서 사용할 수 있음을 나타냅니다.

Public strName as String

모듈 수준에서 문자열 변수를 선언하고 다른 모듈에서 사용하는 경우 오류가 발생합니다.

Public 키워드를 사용하여 문자열 변수를 선언하면 오류가 발생하지 않고 프로시저가 완벽하게 실행됩니다.

문자열로 저장된 값 변환하기

Excel에 텍스트로 저장된 값이 있을 수 있습니다. 예를 들어 CSV 파일을 가져올 때 숫자 대신 텍스트를 가져왔을 수 있습니다.

아래의 A1셀의 값은 왼쪽 정렬되어 텍스트 값임을 나타냅니다.

vba string text

VBA 함수를 사용하여 이러한 숫자를 텍스트로 변환할 수 있습니다.

Sub ConvertValue()
    Dim strQty As String, dblQty As Double
'문자열을 변수에 입력합니다
    strQty = Range("A1")
'Double 유형의 변수를 문자열 변수의 값으로 채워줍니다
    dblQty = strQty
'범위에 변수를 입력합니다
    Range("A1") = dblQty
End Sub

코드를 실행하면 숫자가 오른쪽으로 이동하여 이제 숫자로 저장되었음을 보여줍니다.

vba string number

이 함수는 넓은 범위의 셀을 반복할 때 특히 유용합니다.

vba string list

Sub ConvertValue()
    Dim strQty As String, dblQty As Double
    Dim rw As Integer, i As Integer
'변환할 범위의 행의 개수를 계산합니다
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'셀 범위를 반복하여 모두 숫자로 변환합니다
    For i = 0 To rw – 1
'문자열 변수를 셀 값으로 채워줍니다
        strQty = Range("A1").Offset(i, 0)
'Double 유형 변수를 문자열 변수의 값으로 채워줍니다
        dblQty = strQty
'범위를 숫자로 채워줍니다
        Range("A1").Offset(i, 0) = dblQty
    Next i
End Sub

위 코드를 실행하면 모든 셀이 숫자로 변환됩니다.

vba number list

숫자로 저장된 값 문자열로 변환하기

마찬가지로 숫자에서 문자열로 변환해야 하는 경우가  있을 수 있습니다(예: 전화 번호의 앞자리에 0이 필요한 경우).

vba string number to string

Sub ConvertString()
    Dim strPhone As String, dblPhone As Double
    Dim rw As Integer, i As Integer
'변환할 범위의 행의 개수를 계산합니다
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'셀 범위를 반복하여 모두 문자열로 변환합니다
    For i = 0 To rw – 1
'Double 유형 변수를 셀 값으로 채워줍니다
        dblPhone = Range("A1").Offset(i, 0)
'Double 유형 변수를 문자열 변수로 변환합니다
        strPhone = "'0" & dblPhone
'범위에 문자열을 입력합니다
        Range("A1").Offset(i, 0) = strphone
    Next i
End Sub

vba string number to string converted

Excel에서 값을 문자열로 입력하려면 0 앞에 아포스트로피(‘)로 텍스트 문자열을 시작해야 합니다.

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기