본문 바로가기
VBA 라이브러리

String 함수

2023. 7. 22.

지정된 길이의 반복 문자열을 포함하는 Variant(String)를 반환합니다.

 

구문은 다음과 같습니다.

Syntax

String(number, character)

 

number : 반환된 문자열의 길이입니다. number에 Null이 있으면 Null이 반환됩니다.

character : 반환할 문자열을 생성하는 데 사용할 문자 또는 문자열 식의 첫 번째 문자를 지정하는 문자 코드입니다. 'character'에 Null 값이 포함되어 있다면, Null이 반환됩니다.

 

테스트를 해보니 Null 반환대신 오류가 반환됩니다.

Sub StringNullRuntimeErrorExample()
    Dim result As String
    Dim lengthOfResult As Variant

    ' 정상적인 사용 예시: 문자 "A"를 5번 반복합니다.
    lengthOfResult = 5
    result = String(lengthOfResult, "A")
    Debug.Print result ' 결과: AAAAA

    ' 'number' 인수에 Null이 포함된 경우
    lengthOfResult = Null
    On Error GoTo ErrorHandler
    result = String(lengthOfResult, "A")

ExitSub:
    Exit Sub

ErrorHandler:
    Debug.Print "런타임 오류 발생: " & Err.Number & " - " & Err.Description
    Resume ExitSub
End Sub

 

Sub StringNullCharacterExample()
    Dim result As String
    Dim lengthOfResult As Long
    Dim inputChar As Variant

    lengthOfResult = 5
    inputChar = Null
    On Error GoTo ErrorHandler
    result = String(lengthOfResult, inputChar)
   
ExitSub:
    Exit Sub

ErrorHandler:
    Debug.Print "런타임 오류 발생: " & Err.Number & " - " & Err.Description
    Resume ExitSub
End Sub

 

Sub StringNullExample()
    Dim result As String
    Dim lengthOfResult As Variant

    ' 정상적인 사용 예시: 문자 "A"를 5번 반복합니다.
    lengthOfResult = 5
    result = String(lengthOfResult, "A")
    Debug.Print result ' 결과: AAAAA

    ' 'number' 인수에 Null이 포함된 경우
    lengthOfResult = Null
    If IsNull(lengthOfResult) Then
        Debug.Print "Null 값이 발견되었습니다. 문자열을 생성할 수 없습니다."
    Else
        result = String(lengthOfResult, "A")
    End If
End Sub

 

 

간단한 예제 코드입니다.

 

예제 코드

Sub CreateStringExample1()
    Dim result As String

    ' 문자 "A"를 5번 반복합니다.
    result = String(5, "A")
    Debug.Print result ' 결과: AAAAA
End Sub

Sub CreateStringExample2()
    Dim result As String

    ' ASCII 코드 값 42에 해당하는 문자("*")를 10번 반복합니다.
    result = String(10, 42)
    Debug.Print result ' 결과: **********
End Sub

 

Sub CreateStringExample3()
    Dim result As String
    Dim repeatCount As Long
    Dim inputChar As Variant

    repeatCount = 7
    inputChar = "x"

    ' 문자 "x"를 repeatCount 값만큼 반복합니다.
    result = String(repeatCount, inputChar)
    Debug.Print result ' 결과: xxxxxxx
End Sub

 

Sub CreateStringExample4()
    Dim result As String

    ' 문자 "-"를 10번 반복하고, 결과를 "Hello" 문자열의 앞뒤에 붙입니다.
    result = String(10, "-") & "Hello" & String(10, "-")
    Debug.Print result ' 결과: ----------Hello----------
End Sub

 

Sub CreateStringExample5()
    Dim rowSeparator As String
    Dim colSeparator As String

    ' 행 구분자 생성 (10개의 "-")
    rowSeparator = String(10, "-")

    ' 열 구분자 생성 (3개의 " ")
    colSeparator = String(3, " ")

    Debug.Print "A1" & colSeparator & "A2" & colSeparator & "A3"
    Debug.Print rowSeparator
    Debug.Print "B1" & colSeparator & "B2" & colSeparator & "B3"
End Sub

 

Sub StringInputBoxExample1()
    Dim inputChar As String
    Dim repeatCount As Integer
    Dim result As String

    inputChar = InputBox("반복할 문자를 입력하세요:")
    repeatCount = InputBox("반복 횟수를 입력하세요:")

    result = String(repeatCount, inputChar)
    Debug.Print result
End Sub

 

Sub StringInputBoxExample2()
    Dim inputChar As String
    Dim halfRepeatCount As Integer
    Dim result As String

    inputChar = InputBox("줄의 양쪽에 추가할 문자를 입력하세요:")
    halfRepeatCount = InputBox("양쪽에 추가할 문자 개수의 절반을 입력하세요:")

    result = String(halfRepeatCount, inputChar) & "Hello" & String(halfRepeatCount, inputChar)
    Debug.Print result
End Sub

 

Sub StringInputBoxExample3()
    Dim inputChar As String
    Dim rowSeparator As String
    Dim colSeparator As String
    Dim repeatCount As Integer

    inputChar = InputBox("테두리에 사용할 문자를 입력하세요:")
    repeatCount = InputBox("행 구분자에 사용할 문자 개수를 입력하세요:")

    rowSeparator = String(repeatCount, inputChar)
    colSeparator = "  "

    Debug.Print rowSeparator
    Debug.Print "A1" & colSeparator & "A2" & colSeparator & "A3"
    Debug.Print rowSeparator
    Debug.Print "B1" & colSeparator & "B2" & colSeparator & "B3"
    Debug.Print rowSeparator
End Sub

 

'VBA 라이브러리' 카테고리의 다른 글

GetObject 함수  (0) 2023.08.06
CreateObject 함수  (0) 2023.08.06
Space 함수  (0) 2023.07.22
StrConv 함수  (0) 2023.07.22
StrComp 함수  (0) 2023.07.22