목차
Excel VBA 코드로 작업하는 동안 복잡한 작업을 작은 한 줄 코드로 변환하는 몇 가지 기본 제공 함수를 접하게 됩니다. InStr 은 Excel VBA에서 사용할 수 있는 함수로 주어진 위치에서 시작하여 다른 주어진 문자열 내에서 특정 문자열을 검색합니다. 오늘은 VBA에서 InStr 기능을 사용하여 다른 주어진 문자열 내에서 특정 문자열을 검색하는 방법을 보여드리겠습니다.
연습 워크북 다운로드
InStr Function.xlsm
VBA InStr 함수 소개
- 요약
지정된 위치에서 시작하여 주어진 문자열 내에서 특정 문자열을 검색합니다. 일치 항목을 찾으면 일치 항목이 시작된 지정된 문자열의 위치를 반환합니다.
- Syntax
InStr([start ],문자열1,문자열2,[비교])
- 인수
인수 | 요구사항 | 설명
|
---|---|---|
[start] | 선택 | 검색을 시작할 위치입니다. 기본값은 1입니다. |
string1 | 필수 | 지정된 문자열을 검색하는 문자열입니다. |
string2 | 필수 | 지정된 문자열 내에서 검색하는 문자열입니다. |
[비교] | 선택적 | 비교 유형을 지정하는 {-1,0,1,2} 사이의 숫자 값입니다. 그만큼기본값은 -1(vbUseCompareOption)입니다. Option Compare 문을 지정하지 않은 경우 Binary Comparison을 수행합니다. |
참고:
- [start] 인수 및 [compare] 인수는 선택 사항입니다. [compare] 인수를 지정하는 경우 [start] 인수가 필요합니다. 그렇지 않으면 오류가 발생합니다.
- [start] 인수와 [compare] 인수 중 하나 또는 둘 다 Null<2인 경우>, 오류가 발생합니다.
- [compare] 인수에 지정된 4개의 값은 4가지 유형의 비교를 수행합니다. 아래에 언급되어 있습니다.
VALUE | CONSTANT | DESCRIPTION
|
---|---|---|
-1 | vbUseCompareOption | 에 지정된 비교를 수행합니다. 옵션 비교 문. |
0 | vbBinaryCompare | 이진 비교를 수행합니다. |
1 | vbTextCompare | 텍스트 비교를 수행합니다. |
2 | vbDatabaseCompare | 데이터베이스를 기반으로 비교를 수행합니다. . |
- Option Compare 문은 기본 VBA 코드가 시작되기 전에 제공되는 문입니다. 필요한 경우 코드가 이진 비교 또는 텍스트 비교를 검색할지 여부를 지정합니다.
옵션 비교 텍스트
-
- 간단히 말해서 , 이진 비교 는 대소문자 구분을 의미합니다.비교.
- 간단히 텍스트 비교 는 대소문자를 구분하지 않는 비교를 의미합니다.
- 반환 값
- string1 에서 string2 가 시작된 위치를 반환합니다.
- string2 가 없는 경우 start 위치에서 시작하여 string1 내에서 0을 반환합니다.
- string1 의 길이가 0이면 0을 반환합니다.
- string2 의 길이가 0이면 start 인수를 반환합니다.
- 마지막으로 string1 또는 string2 는 Null 이고 오류를 반환합니다.
VBA InStr 함수를 사용하는 3가지 쉬운 예
In 이 섹션에서는 Excel에서 VBA InStr 함수를 적용하는 세 가지 쉬운 예를 볼 수 있습니다. VBA 코드에서 InStr 기능의 첫 번째 예를 살펴보겠습니다.
1. 주소가 이메일 주소인지 여부 결정 VBA InStr 함수를 사용하여
여기서 고객의 연락처가 포함된 데이터 세트를 가져왔습니다. 여기서 우리의 목표는 주소가 이메일 주소인지 여부를 식별하는 것입니다.
이제 InStr 기능을 사용하여 VBA 코드를 개발하여 이메일 주소인지 아닌지. 이렇게 하려면 아래 단계를 따르세요.
단계:
- 처음에는 개발자 탭으로 이동하여 Visual Basic (또는 Alt+F11) 을 눌러 VBA window.
- 그런 다음 VBA 창에서 삽입 > Module .
- 그런 다음 모듈에 다음 코드를 붙여넣습니다.
7272
- 또한 DECISION 이라는 함수를 만들었습니다. 주소가 이메일 주소인지 여부를 결정합니다. 우리가 가지고 있는 데이터 세트에 함수를 적용해 보겠습니다.
- 셀 C5 에서 다음 수식을 기록한 다음 채우기 핸들 을 사용하여 나머지 셀을 자동으로 채웁니다.
=DECISION(B5)
- 보시다시피 각각의 주소가 이메일 주소인지 확인했습니다. 여부.
🎓 코드는 어떻게 작동합니까?
- Function DECISION(string1 As String)
먼저 이것은 DECISION 이라는 함수를 생성합니다. string1 .
- Dim Position As Integer
Position<이라는 정수 변수를 선언합니다. 2>.
- Position = InStr(1, string1, “@”, 0)
의 값을 할당합니다. 1, string1, "@" 및 0 인수가 있는 InStr 함수의 출력으로 변수를 지정합니다. 간단히 말해서 "@" 가 있는 주소의 위치를 할당합니다.
- 위치 = 0이면 DECISION = "이메일 아님"
Position 인 경우 DECISION 기능의 출력을 "이메일 아님" 으로 지정합니다.변수는 0 입니다. 즉, 주소에 "@" 가 없다는 의미입니다.
(주어진 문자열 내에서 문자열이 발견되지 않으면 InStr 함수는 0 )을 반환합니다.
- Else DECISION = “이메일”
주소에 "@" 가 있는 경우 DECISION 기능의 출력이 "Email" 로 표시됩니다. 따라서 “@” 가 있는 주소는 Email 로 분류되고 나머지는 "Not Email" 로 분류됩니다.
비슷한 내용
- 엑셀에서 VBA UCASE 함수를 사용하는 방법 (예제 4개)
- 엑셀 VBA에서 MsgBox 함수 사용하기 (A Complete Guideline)
- 엑셀에서 VBA SPLIT 기능 사용하는 방법 (예제 5개)
- 엑셀에서 VBA에서 LCase 기능 사용하기 4 예제)
- Excel VBA에서 고정 기능 사용 방법 (4 예제)
2. VBA InStr 기능을 활용하여 일부 이메일 주소의 확장자 추출
다음은 일부 고객의 일부 이메일 주소 목록입니다. 이번에는 gmail.com 또는 yahoo.com .
이 있는지 여부와 같은 이메일 주소의 확장자를 추출합니다. 그렇게 하려면 아래 단계를 따르십시오.
단계:
- 먼저 이전 방법과 마찬가지로 새 VBA 모듈을 만들고 창에 다음 코드를 붙여넣습니다.
5770
- 또한 다음과 같은 함수를 만들었습니다. 확장 . 모든 이메일 주소의 확장자를 추출합니다.
- 또한 이 기능을 가지고 있는 데이터 세트에 적용해 보겠습니다. 먼저 셀 C5 에 이 수식을 입력한 다음 채우기 핸들 을 두 번 클릭합니다.
=EXTENSION(B5)
- 마지막으로 모든 이메일의 확장자를 성공적으로 추출한 것을 확인할 수 있습니다.
🎓 코드는 어떻게 작동합니까?
- Function EXTENSION(Email As String)
EXTENSION 이라는 새 함수를 만듭니다. 문자열 인수 Email .
- Dim Position As Integer
이 부분은 Position이라는 정수 변수를 선언합니다. .
- Position = InStr(1, Email, “@”, 0)
<1의 값을 할당합니다>Position 변수는 1, 이메일, "@" 및 0 인수가 있는 InStr 기능의 출력입니다. 간단히 말해서 "@" 가 있는 Email 에서 위치를 할당합니다.
- EXTENSION = Right(Email, (Len (이메일) – 위치))
EXTENSION 기능의 출력을 기호 “@” 뒤의 문자로 지정하는 부분입니다. 이메일 의 필수 확장자입니다.
3. VBA InStr 함수를 사용하여 이름에서 이름 또는 성 추출
마지막으로 고유한 다른 작업을 수행합니다. 이번에는회사. 그리고 직원의 이름 또는 성을 추출하는 기능을 빌드하려고 합니다.
그렇게 하려면 아래 단계를 따르십시오.
단계:
- 먼저 방법 1 과 유사하게 VBA 창의 새 모듈에 아래 코드를 붙여넣습니다.
6957
- 여기서는 이름에서 이름 또는 성을 추출하는 SHORTNAME 이라는 함수를 만들었습니다. 이 공식을 데이터셋에 적용해 보겠습니다.
- 먼저 이름을 추출하기 위해 셀 C5 에 아래 공식을 적습니다.
=SHORTNAME(B5,-1)
- 마지막으로 성을 추출하기 위해 D5 에 다음과 같은 수식을 적는다:
=SHORTNAME(B5,1)
- 나중에 Fill Handler<2로 나머지 셀을 자동으로 채우면> 원하는 결과가 표시됩니다.
🎓 코드는 어떻게 작동합니까?
- Function SHORTNAME(Name As String, First_or_Last As Integer)
SHORTNAME<2라는 새 함수를 생성합니다> Name 이라는 하나의 문자열 인수와 First_or_Last .
- Dim Break As Integer <11라는 하나의 정수 인수>
- Break = InStr(1, Name, ” “, 0)
- If First_or_Last = -1 Then SHORTNAME = Left(Name, Break – 1)
- SHORTNAME = Right(Name, Len(Name) – Break)
이 부분은 Break 라는 새로운 정수 변수를 선언합니다.
Break 변수의 값을 인수와 함께 InStr 함수의 출력으로 할당합니다. 1, 이름, " " 및 0 . 즉, 이름 에서 공백(“ ”)이 있는 위치를 할당합니다.
이 줄은 SHORTNAME 함수의 출력을 공백 앞의 문자로 할당합니다. First_or_Last 인수가 -1인 경우. 첫 번째 이름입니다.
이 부분은 SHORTNAME 은 First_or_Last 인수가 1인 경우 공백 뒤의 문자로 작동합니다. 이것은 성입니다.
결론
이런 식으로 InStr 함수로 VBA 코드를 작성할 수 있습니다. 문자열을 사용한 다음 다양한 용도로 자신만의 함수를 만들 수 있습니다. 또한 질문이 있으시면 언제든지 문의해 주십시오.