수색…


비고

문자열은 참조 유형 이며 대부분의 프로그래밍 작업의 핵심입니다. 텍스트가 숫자 일지라도 문자열에는 텍스트가 지정됩니다. 문자열은 길이가 0이거나 길이가 최대 2GB가 될 수 있습니다. 최신 버전의 VBA는 내부적으로 멀티 바이트 문자 집합 바이트 (유니 코드 대신)의 바이트 배열을 사용하여 문자열을 저장합니다.

문자열 상수를 선언하십시오.

Const appName As String = "The App For That"

가변 폭 문자열 변수 선언

Dim surname As String 'surname can accept strings of variable length
surname = "Smith"
surname = "Johnson"

고정 너비 문자열 선언 및 할당

'Declare and assign a 1-character fixed-width string
Dim middleInitial As String * 1 'middleInitial must be 1 character in length
middleInitial = "M"

'Declare and assign a 2-character fixed-width string `stateCode`,
'must be 2 characters in length
Dim stateCode As String * 2
stateCode = "TX"

문자열 배열 선언 및 할당

'Declare, dimension and assign a string array with 3 elements
Dim departments(2) As String
departments(0) = "Engineering"
departments(1) = "Finance"
departments(2) = "Marketing"

'Declare an undimensioned string array and then dynamically assign with
'the results of a function that returns a string array
Dim stateNames() As String
stateNames = VBA.Strings.Split("Texas;California;New York", ";")

'Declare, dimension and assign a fixed-width string array
Dim stateCodes(2) As String * 2
stateCodes(0) = "TX"
stateCodes(1) = "CA"
stateCodes(2) = "NY"

Mid 문을 사용하여 문자열 내의 특정 문자 할당

VBA는 문자열 내에서 문자열을 반환에 대한 중간 기능을 제공하지만, 그것은 또한 문자열을 withing에 문자열 또는 개별 문자를 할당하는 데 사용할 수있는 중간 문을 제공합니다.

Mid 함수는 일반적으로 대입 문의 오른쪽이나 조건에 표시되지만 Mid 문은 일반적으로 대입 문의 왼쪽에 나타납니다.

Dim surname As String
surname = "Smith"

'Use the Mid statement to change the 3rd character in a string
Mid(surname, 3, 1) = "y"
Debug.Print surname

'Output:
'Smyth

참고 : 문자열 내의 개별 문자 대신 문자열의 개별 바이트 에 할당해야하는 경우 (멀티 바이트 문자 집합에 대한 아래 비고 참조) MidB 문을 사용할 수 있습니다. 이 경우 MidB 문에 대한 두 번째 인수는 대체가 시작될 바이트의 1 기준 위치이므로 위 예제의 등가 선은 MidB(surname, 5, 2) = "y" 됩니다.

바이트 배열에 대한 할당과 바이트 배열에서의 할당

문자열은 바이트 배열에 직접 할당 할 수 있으며 그 반대의 경우도 가능합니다. 문자열은 멀티 바이트 문자 집합 (아래 비고 참조)에 저장되므로 결과 배열의 다른 모든 색인 만 ASCII 범위 내에있는 문자 부분이됩니다.

Dim bytes() As Byte
Dim example As String

example = "Testing."
bytes = example             'Direct assignment.

'Loop through the characters. Step 2 is used due to wide encoding.
Dim i As Long
For i = LBound(bytes) To UBound(bytes) Step 2
    Debug.Print Chr$(bytes(i))  'Prints T, e, s, t, i, n, g, .
Next

Dim reverted As String
reverted = bytes            'Direct assignment.
Debug.Print reverted        'Prints "Testing."


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow