특정 문자열이 다른 문자열 내에서 처음으로 나타나는 위치를 지정하는 Variant(Long) 형식을 반환합니다.
구문
InStr([start, ] string1, string2 [, compare ] )
InStr 함수 구문에는 다음과 같은 인수가 사용됩니다.
| 인수 | 설명 |
|---|---|
| 시작 | 선택 요소입니다. 각 검색의 시작 위치를 설정하는 숫자식입니다. 생략하면 검색이 첫 번째 문자 위치에서 시작됩니다. start에 Null이 포함되어 있으면 오류가 발생합니다. 비교가 지정된 경우 시작 인수가 필요합니다. |
| string1 | 필수 요소입니다. 검색 중인 문자열 식입니다. |
| 문자열2 | 필수 요소입니다. 찾으려는 문자열 식입니다. |
| 비교 | 선택 요소입니다. 문자열 비교 유형을 지정합니다. 비교가 Null이면 오류가 발생합니다. 비교를 생략하면 OptionCompare 설정이 비교 유형을 결정합니다. 비교에 로캘별 규칙을 사용하려면 유효한 LCID(LocaleID)를 지정합니다. |
팁
식 작성기에는 IntelliSense가 있으므로 식에 필요한 인수를 확인할 수 있습니다.
설정
비교 인수 설정은 다음과 같습니다.
| 상수 | Value | 설명 |
|---|---|---|
| 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.