Appia의 IT세상

비주얼베이직(Visual Basic, VBA) 문자열내에 특정 문자의 위치 확인하기(InStr, InstrRev) 본문

Programming/VisualBasic_VBA

비주얼베이직(Visual Basic, VBA) 문자열내에 특정 문자의 위치 확인하기(InStr, InstrRev)

Appia 2020. 12. 8. 07:17
반응형

비주얼베이직(Visual Basic, VBA) 문자열내에 특정 문자의 위치 확인하기

(InStr, InstrRev)

비주얼베이직(Visual Basic, VBA) 문자열내에 특정 문자의 위치 확인하기(InStr, InstrRev)

 

이번 포스팅 주요 내용을 다루기 전에 문자열 대해서 이야기를 해보고자 합니다. 문자열이란 흔히 알다시피, 여러 문자들의 연속해서 나타내는 것들로, 숫자가 문자, 또는 특수 문자로 될 수 있습니다. 흔히들 알다 시피 따옴표(" ") 사이에서 문자열에 대해서 표시를 합니다. 

 

이와 같이 문자열에서 특정 문자가 포함되는지에 대해서 대해서 확인하기 방법에 대해서 알아보고자 합니다. 관련해서는 다음과 같이 2가지 함수로 사전에 제공을 하고 있습니다. 

 

1. InStr

특정 문자가 있는지 확인하여 몇 번째 글자인지 확인합니다. (좌에서 우 방향으로 검색합니다.)

 

2. InstrRev 

특정 문자가 있는지 확인하여 몇 번째 글자인지 확인합니다. (우에서 좌 방향으로 검색합니다.)

 

그럼 위의 함수에 대해서 각각 살펴보겠습니다. 

 

1. InStr

InStr함수의 문법에 대해서 살펴보면 다음과 같은 부분에 대해서 확인할 수 있습니다.

InStr([시작 위치,]기준 문자열, 찾고자 하는 문자[,비교 방식])

위에서 보여지는 문법을 형태로 기준 문자열에서 찾고자 하는 문자가 있는지 확인합니다. 시작 위치가 존재할 경우 그 시작 위치부터 시작하여 검색을 시작합니다. 그리고 비교 방식에 대해서는 바이너리 비교(0)인지 텍스트 비교(1)인지에 대해서 선택하는 부분입니다. 

 

그럼 다음과 같은 예시를 살펴보겠습니다. 

1
2
3
4
5
6
7
8
Private Sub Constant_demo_Click()
   Dim Var As String
   Var = "Hello Appia"
   MsgBox ("a위 위치 : " & InStr(Var, "a"))
   MsgBox ("A의 위치 : " & InStr(Var, "A"))
   MsgBox ("8번째부터 찾은 A의 위치 : " & InStr(8, Var, "A"))
End Sub
 
cs

 

위의 코드를 실행하면 다음과 같은 결과가 순차적으로 나옵니다. 마지막 결과인 8번째부터 찾은 A의 위치에서는 8번째 자리부터 찾기 떄문에 A를 찾을 수 없기 때문에 0이 나옵니다. 

1. InStr 예시 실행 결과 

그리고 추가로 만약에 l을 찾기 했었다면 3이 나올 것입니다. 그 이유는 왼쪽부터 검색을 실시하여 나타나는 첫글자에 위치를 반환하기 때문입니다. 

 

2. InstrRev

InstrRev함수의 문법에 대해서 살펴보면 다음과 같은 부분에 대해서 확인할 수 있습니다.

InStrRev(기준 문자열, 찾고자 하는 문자[,시작 위치][,비교 방식])

기본적으로 InstrRev함수의 경우 위에서 본 InStr함수와 동일한 기능을 가지고 있습니다. 단, 시작 위치 Parameter를 입력하는 부분이 비교 방식 바로 앞으로 옮겨졌다는 것만 차이가 있습니다. 그럼 간단한 예시를 살펴보겠습니다. 

1
2
3
4
5
6
7
8
Private Sub InStrRev_example_click()
   Dim Var As String
   Var = "Hello Appia"
   MsgBox ("l위 위치(InstrRev) : " & InStrRev(Var, "l"))
   MsgBox ("3번째 부터 찾은 l의 위치(InstrRev) : " & InStrRev(Var, "l"3))
   MsgBox ("A의 위치(InstrRev) : " & InStrRev(Var, "A"))
End Sub
 
cs

 

위의 예시를 실행하면 다음과 같은 결과가 순차적으로 나타납니다. 물론, 우측에서 부터 검색을 시작하여 첫번째 찾은 문자의 위치를 반환하기 때문에 l의 위치는 4가 나타나는 것이 입니다.  

2. InstrRev 예시 실행 결과 

 

이번 포스팅에서는 비주얼베이직(Visual Basic, VBA) 문자열내에 특정 문자의 위치 확인하기(InStr, InstrRev)라는 주제로 간단히 이야기를 나누어봤습니다. 이 부분을 토대로 다양하게 활용이 가능합니다. 또한 이 부분에서 0과 아님을 이용하여 문자열안에 특정 문자의 포함 여부를 확인하는 방법 또한 구성이 가능할 것으로 보입니다. 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

 

반응형
Comments