특정 문자열이 다른 문자열 내에서 처음으로 나타나는 위치를 지정하는 Variant(Long) 형식을 반환합니다.
구문
InStr ([start, ] string1, string2 [, compare ] )
InStr 함수 구문에는 다음과 같은 인수가 사용됩니다.
인수 |
설명 |
---|---|
시작 |
선택 요소입니다. 각 검색의 시작 위치를 설정하는 숫자 식입니다. 생략하면 첫 번째 문자 위치에서 검색이 시작됩니다. start에 Null이 포함되어 있으면 오류가 발생합니다. 비교를 지정하는 경우 start 인수가 필요합니다. |
string1 |
필수 요소입니다. 검색 중인 문자열 식입니다. |
string2 |
필수 요소입니다. 문자열 식을 찾았습니다. |
비교 |
선택 요소입니다. 문자열 비교 형식을 지정합니다. 비교가 Null이면 오류가 발생합니다. 비교를 생략하면 옵션비교 설정에 따라 비교 유형이 결정됩니다. 비교에서 로캘별 규칙을 사용할 유효한 LCID(LocaleID)를 지정합니다. |
팁: 식 작성기에서 IntelliSense를 사용하므로 식에 필요한 인수를 확인할 수 있습니다.
설정
비교 인수 설정은 다음과 같습니다.
상수 |
값 |
설명 |
---|---|---|
vbUseCompareOption |
-1 |
Option Compare 문의 설정을 사용하여 비교를 수행합니다. |
vbBinaryCompare |
0 |
이진 비교를 수행합니다. |
vbTextCompare |
1 |
텍스트 비교를 수행합니다. |
반환 값
If |
InStr 반환 |
---|---|
string1은 길이가 0입니다. |
0 |
string1이 Null입니다. |
Null |
string2는 길이가 0입니다. |
시작 |
string2가 Null입니다. |
Null |
string2를 찾을 수 없습니다. |
0 |
string2는 string1 내에서 찾을 수 있습니다. |
일치하는 항목을 찾을 위치 |
start > string2 |
0 |
주의
InStrB 함수는 문자열에 포함된 바이트 데이터와 함께 사용됩니다. InStrB는 한 문자열이 다른 문자열에서 처음 나타나는 문자 위치를 반환하는 대신 바이트 위치를 반환합니다.
예제
식에서 InStr 함수 사용 식을 사용할 수 있는 모든 위치에서 InStr 을 사용할 수 있습니다. 예를 들어 첫 번째 마침표의 위치를 찾으려는 경우(.) IP 주소(IPAddress라는 이름)가 포함된 필드에서 다음과 같이 InStr 을 사용하여 찾을 수 있습니다.
InStr(1,[IPAddress],".")
InStr 함수는 IPAddress 필드의 각 값을 검사하고 첫 번째 마침표의 위치를 반환합니다. 따라서 IP 주소의 첫 번째 부분이 10인 경우함수는 값 3을 반환합니다.
그런 다음 InStr 함수의 출력에서 작동하는 다른 함수를 사용하여 첫 번째 기간 이전의 IP 주소 부분을 추출할 수 있습니다.
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
이 예제에서는 InStr(1,[IPAddress],".") 는 첫 번째 마침표의 위치를 반환합니다. 1을 빼면 첫 번째 마침표 앞에 오는 문자 수(이 경우 2)가 결정됩니다. 그런 다음 Left 함수는 IPAddress 필드의 왼쪽 부분에서 많은 문자를 추출하여 값 10을 반환합니다.
VBA 코드에서 InStr 사용
참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다.
이 예제에서는 InStr 함수를 사용하여 한 문자열이 다른 문자열에서 처음 나타나는 위치를 반환합니다.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.