Excel VBA InStr 함수-예제로 설명 됨

어제 독자 중 한 명으로부터 이메일을 받았습니다 – 6 월.

그녀는 원했습니다. 셀 내의 문자열의 특정 부분에 굵은 글꼴 형식을 적용하는 방법을 알고 있습니다. 예를 들어 ‘Hello World’의 ‘Hello’라는 단어에만 굵은 형식을 적용합니다.

그녀는 한 번에 수백 개의 셀에 대해이 작업을 수행하려고했습니다.

이를 수행 할 수있는 Excel에 내장 된 기능이 없으므로 Excel VBA InStr 함수를 사용하는 간단한 매크로를 만들었습니다 (이 자습서의 예제 4에서이를 수행하는 방법을 볼 수 있습니다).

하지만 먼저 살펴 보겠습니다. Excel VBA InStr 함수의 작동 방식!

이 자습서에서 다루는 내용 :

Excel VBA InStr 함수

이 튜토리얼에서는 Excel VBA에서 InStr 함수의 사용법을 설명하고 사용할 수있는 몇 가지 실제 예제를 살펴 봅니다.

Excel VBA InStr 함수 – 소개

InStr 함수가 찾습니다. 문자열 내에서 지정된 하위 문자열의 위치를 반환하고 해당 발생의 첫 번째 위치를 반환합니다.

예를 들어 Excel VBA InStr 함수를 사용하여 ‘Excel’에서 ‘x’의 위치를 찾으려는 경우 2를 반환합니다.

InStr 함수 구문

  • – (선택적 인수) InStr 함수에 검색을 시작해야하는 시작 위치를 알려주는 정수 값입니다. 예를 들어 처음부터 검색을 시작하려면 값을 1로 입력합니다. 세 번째 문자부터 시작하려면 3을 사용합니다. 생략하면 기본값 인 1이 사용됩니다.
  • String1 – 검색 할 기본 문자열 (또는 상위 문자열)입니다. 예를 들어 Excel에서 x의 위치를 찾는 경우 문자열 1은 “Excel”이됩니다.
  • String2 – 검색중인 하위 문자열입니다. 예를 들어 다음과 같은 경우 Excel에서 x의 위치를 찾으려면 String2는 x가됩니다.
  • – (선택적 인수) 인수에 대해 다음 세 값 중 하나를 지정할 수 있습니다.
    • vbBinaryCompare – 이것은 문자를 수행합니다. 예를 들어 ‘Excel’에서 ‘x’를 검색하면 2를 반환하지만 ‘Excel’에서 ‘X’를 검색하면 X가 상위에 있으므로 0을 반환합니다. vbBinaryCompare 대신 0을 사용할 수도 있습니다. 인수가 생략 된 경우 기본값으로 사용됩니다.
    • vbTextCompare – 텍스트 비교를 수행합니다. 예를 들어 ‘x’를 찾는 경우 또는 Excel에서 ‘X’인 경우 두 경우 모두 2를 반환합니다.이 인수는 대소 문자를 무시합니다. vbTextCompare 대신 1을 사용할 수도 있습니다.
    • vbDatabaseCompare – Microsoft Access에만 사용됩니다. 정보를 사용 비교를 수행 할 데이터베이스. vbDatabaseCompare 대신 2를 사용할 수도 있습니다.

Excel VBA InStr 함수에 대한 추가 참고 사항 :

  • InStr은 VBA입니다. 워크 시트 함수가 아닌 함수입니다. 즉, 워크 시트 내에서 사용할 수 없습니다.
  • String2 (찾고있는 위치의 하위 문자열)가 비어 있으면 함수는 인수 값을 반환합니다.
  • InStr 함수가 기본 문자열 내에서 하위 문자열을 찾지 못하면 0을 반환합니다.

이제 Excel VBA InStr 함수를 사용하는 몇 가지 예를 살펴 보겠습니다. / p>

예제 1 – 처음부터 위치 찾기

이 예제에서는 InStr 함수를 사용하여 ‘Excel VBA’의 ‘V’위치를 처음부터 찾습니다.

코드는 다음과 같습니다.

Sub FindFromBeginning()Dim Position As IntegerPosition = InStr(1, "Excel VBA", "V", vbBinaryCompare)MsgBox PositionEnd Sub

이 코드를 실행하면 값이 7 인 메시지 상자가 표시됩니다. 문자열 ‘Excel VBA’에서 ‘V’의 위치입니다.

예제 2 – 두 번째 단어의 시작 부분에서 위치 찾기

가정하면 위치를 찾고 싶습니다. 문장에서 ‘the’의 – ‘The quick brown fox jumps over the lazy dog’

하지만 검색은 두 번째 단어부터 시작합니다.

이 경우 두 번째 단어가 시작되는 위치를 지정하도록 인수를 변경해야합니다.

여기에 코드가 있습니다. 다음을 수행합니다.

Sub FindFromSecondWord()Dim Position As IntegerPosition = InStr(4, "The quick brown fox jumps over the lazy dog", "the", vbBinaryCompare)MsgBox PositionEnd Sub

이 코드는 시작 위치를 4로 지정 했으므로 값이 32 인 메시지 상자를 표시합니다. 따라서 첫 번째 ‘ The ‘는 문장에서 두 번째’the ‘를 찾습니다.

더 동적으로 만들고 싶다면 자동으로 첫 번째 단어를 무시하도록 코드를 향상시킬 수 있습니다.

다음은이를 수행하는 향상된 코드입니다.

Sub FindFromSecondWord()Dim StartingPosition As IntegerDim Position As IntegerStartingPosition = InStr(1, "The quick brown fox jumps over the lazy dog", " ", vbBinaryCompare)Position = InStr(StartingPosition, "The quick brown fox jumps over the lazy dog", "the", vbBinaryCompare)MsgBox PositionEnd Sub

이 코드는 먼저 공백 문자의 위치를 찾아서 StartingPosition 변수에 저장합니다.

그런 다음이 변수를 시작 위치로 사용하여 ‘the’라는 단어를 찾습니다.

따라서 32 (첫 번째 단어 뒤의 ‘the’시작 위치)를 반환합니다.

예제 3 – 이메일 주소에서 @의 위치 찾기

Excel VBA InStr 함수를 사용하여 이메일 주소에서 @의 위치를 찾는 사용자 지정 함수를 쉽게 만들 수 있습니다.

다음은 사용자 지정 함수를 만드는 코드입니다.

이제이 사용자 지정 함수를 다른 워크 시트 함수로 사용할 수 있습니다. 셀 참조를 입력으로 받아 그 안에 @의 위치를 제공합니다.

마찬가지로 기본 문자열 내에서 하위 문자열의 위치를 찾는 사용자 지정 함수.

예제 4 – 셀 내 문자열의 일부 강조

이것은 June (내 독자)이 요청한 쿼리입니다. 이 튜토리얼을 작성하도록 영감을 주셨습니다).

다음은 June이 보낸 형식의 샘플 데이터입니다.

그녀의 쿼리는 대괄호 밖의 숫자를 굵게 표시하는 것이 었습니다.

이 작업을 수행하는 코드는 다음과 같습니다.

위 코드는 For Each 루프를 사용하여 선택 항목의 각 셀을 살펴 봅니다. InStr 함수를 사용하여 여는 괄호 문자의 위치를 식별합니다. 그런 다음 대괄호 앞의 텍스트 글꼴을 변경합니다.

이 코드를 사용하려면 VB 편집기의 모듈에 복사하여 붙여 넣어야합니다.

복사를 붙여 넣은 후 코드에서이 서식을 지정할 셀을 선택하고 매크로를 실행합니다 (아래 참조).

다음 Excel VBA 자습서도 좋아할 수 있습니다.

  • Excel VBA SPLIT 함수
  • VBA TRIM 함수
  • Excel VBA 루프에 대한 궁극적 인 가이드 .
  • Excel VBA에서 For Next 루프를 사용하기위한 초보자 가이드
  • Excel 추가 기능을 만들고 사용하는 방법
  • 여러 통합 문서를 결합하는 방법 하나의 Excel 통합 문서로.
  • Excel에서 색상이 지정된 셀 수를 계산하는 방법
  • 초보자를위한 유용한 Excel VBA 매크로 예제
  • VBA를 사용하여 Excel에서 데이터를 정렬하는 방법 (단계별 가이드)

Leave a Reply

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다