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

InStr 함수

2023. 8. 23.

InStr 함수

한 문자열 안에 특정 문자열이 처음으로 나타난 위치를 지정하는 Variant(Long) 값을 반환합니다.

Syntax
InStr([ start ], string1, string2, [ compare ])

start : 선택적인 요소. 각 검색의 시작 위치를 설정하는 숫자 표현식입니다. 생략하면 첫 번째 문자 위치부터 검색이 시작됩니다. start에 Null이 포함되면 오류가 발생합니다. compare를 지정한 경우 start 인수는 필수입니다.

string1 : 필수. 검색 중인 문자열 표현식입니다.

string2 : 필수. 찾는 문자열 표현식입니다.

compare : 선택적인 요소. 문자열 비교 형식을 지정합니다. Compare 값이 Null이면 오류가 발생하고 Compare 값이 지정되지 않으면 Option Compare 설정값에 따라 비교 형식이 결정됩니다. 비교에서 로케일에 종속하는 규칙을 사용하려면 유효한 LCID(LocaleID)를 지정합니다.

설정
compare 인수 설정은 아래와 같습니다.

반환값

참고

InStrB 함수는 문자열에 포함된 바이트 데이터에 사용됩니다. InStrB는 다른 문자열 내에서 한 문자열의 첫 번째 문자 위치를 반환하는 대신 바이트 위치를 반환합니다.

아래 예제에서는 InStr 함수를 사용하여 주어진 문자열 내에서 사용자가 지정된 문자열이 처음 나타나는 지점을 찾아냅니다.

Sub TestInStr()
    Dim SearchString As String
    Dim SearchChar As String
    Dim MyPos As Long
    
    SearchString = "XXpXXpXXPXXP" ' 찾을 문자열
    SearchChar = "P" ' "P"를 찾습니다.

    ' 4 위치에서 텍스트 비교를 시작합니다. 6을 반환합니다.
    MyPos = InStr(4, SearchString, SearchChar, vbTextCompare)
    Debug.Print "Position (Start: 4): " & MyPos

    ' 1 위치에서 이진 비교를 시작합니다. 9를 반환합니다.
    MyPos = InStr(1, SearchString, SearchChar, vbBinaryCompare)
    Debug.Print "Position (Binary, Start: 1): " & MyPos

    ' 기본값은 이진 비교입니다. 마지막 인수는 생략합니다.
    MyPos = InStr(SearchString, SearchChar) ' 9를 반환합니다.
    Debug.Print "Position (Default Binary): " & MyPos

    MyPos = InStr(1, SearchString, "W") ' 0을 반환합니다.
    Debug.Print "Position (Not found): " & MyPos
End Sub

' Output
' Position (Start: 4): 6
' Position (Binary, Start: 1): 9
' Position (Default Binary): 9
' Position (Not found): 0

도움말 출처

InStr function (Visual Basic for Applications)

Office VBA reference topic

learn.microsoft.com

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

MonthName 함수  (0) 2023.08.24
InStrRev 함수  (0) 2023.08.24
FormatPercent 함수  (0) 2023.08.23
FormatNumber 함수  (0) 2023.08.23
FormatDateTime 함수  (0) 2023.08.23