VBA 문자열 자르기 :: Splitter 명령문 사용법 및 동작원리

시작문자와 마지막 문자를 지정하여 두 문자 사이의 문자열을 추출하는 Splitter 명령문의 사용법 및 동작원리

작성자 :
오빠두엑셀
최종 수정일 : 2021. 03. 13. 17:38
URL 복사
메모 남기기 : (5)

VBA 문자열 자르기 :: Splitter 명령문 사용법 총정리

엑셀 Splitter 명령문 목차 바로가기
요약

시작문자와 마지막문자를 지정하여 두 문자 사이의 문자열을 추출하는 사용자지정 함수입니다.

명령문 구문
= Splitter ( 문자열, 시작문자, [마지막문자] )
사용된 인수 및 변수 알아보기
인수 설명
문자열
[Variant]
원본 문자열입니다.
시작문자
[String]
문자열 추출을 시작할 기준이 되는 문자입니다. 시작 문자가 종료된 지점부터 문자열을 추출합니다.

예를들어, Splitter("합계:123", "합계:") 는 "123"을 반환합니다.

마지막문자
[String, 선택인수]
문자열 추출을 종료할 기준 문자입니다. 마지막문자가 시작된 지점을 기준으로 문자열 추출을 종료합니다. 마지막 문자가 생략 될 경우 시작문자 이후 값을 모두 반환합니다.

예를들어, Splitter("합계:123원","합계:","원") 은 "123"을 반환합니다.


예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

문자열의 시작문자와 마지막문자를 지정하여 두 문자 사이의 문자열을 추출하는 사용자 지정 함수입니다. 기존의 MID 함수를 사용시에는 특정 두 문자 사이의 값을 추출하는데 어려움이 있었으나, Splitter 함수를 사용하면 손쉽게 두 문자 사이의 값을 추출할 수 있습니다.

3번째 인수인 '마지막문자'의 기본값은 NULL 입니다. 따라서 마지막문자가 생략될 경우 Splitter 함수는 시작문자 이후의 모든 문자를 결과값으로 반환합니다.

Splitter 함수로 오류가 반환되면 함수의 결과값으로 공백("")이 반환됩니다.

실전 사용 예제
  1. HTML 의 <div> 태그 사이값 추출하기
    =Splitter("<div class="nav">메뉴</div>","<div class="nav">","</div">
    =메뉴
  2. JSON 데이터의 특정 필드 값 추출하기
    =Splitter("[ { "color":"red", "value":"#f00" }, { "color":"blue", "value":"#00f" } ]","""color"":",",")
    ="red"

VBA 텍스트 자르기, Splitter 명령문 동작원리

Splitter 명령문 전체 코드
Function Splitter(v As Variant, Cutter As String, Optional Trimmer As String)
 
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ Splitter 함수
'▶ Cutter ~ Timmer 사이의 문자를 추출합니다. (Timmer가 빈칸일 경우 Cutter 이후 문자열을 추출합니다.)
'▶ 인수 설명
'_____________v       : 문자열입니다.
'_________Cutter      : 문자열 절삭을 시작할 텍스트입니다.
'_________Trimmer  : 문자열 절삭을 종료할 텍스트입니다. (선택인수)
'▶ 사용 예제
'Dim s As String
's = "{sa;b132@drama#weekend;aabbcc"
's = Splitter(s, "@", "#")
'msgbox s   '--> "drama"를 반환합니다.
'###############################################################
 
Dim vaArr As Variant
 
On Error GoTo EH:
 
vaArr = Split(v, Cutter)(1)
If Not IsMissing(Trimmer) Then vaArr = Split(vaArr, Trimmer)(0)
 
Splitter = vaArr
 
Exit Function
 
EH:
    Splitter = ""
 
End Function
명령문 동작원리 단계별 알아보기
  1. VBA 문자열 자르기 위한 변수를 선언합니다.
    Dim vaArr As Variant
  2. 시작문자를 기준으로 이후 문자를 잘라냅니다.
    vaArr = Split(v, Cutter)(1)
  3. 마지막문자가 있을 시 마지막문자 이전 문자를 잘라냅니다.
    If Not IsMissing(Trimmer) Then vaArr = Split(vaArr, Trimmer)(0)
  4. 결과값을 반환한 뒤 함수를 종료합니다.
    Splitter = vaArr
5 4 투표
게시글평점
5 댓글
Inline Feedbacks
모든 댓글 보기
5
0
여러분의 생각을 댓글로 남겨주세요.x