엑셀 범위 텍스트 합치기 :: RngConcat 함수 예제

엑셀에서 범위 내 텍스트를 구분자로 병합하는 RngConcat 함수 사용법에 대해 알아봅니다.

홈페이지 » 엑셀 범위 텍스트 합치기 :: RngConcat 함수 예제

작성자 :
오빠두엑셀
최종 수정일 : 2022. 05. 26. 17:38
URL 복사
메모 남기기 : (2)

엑셀 범위 텍스트 합치기 :: RngConcat 명령문 사용법 총정리

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

엑셀 RngConcat 함수는 선택한 범위의 값을 구분자로 병합하는 함수입니다.

명령문 구문
= RngConcat ( 범위, [구분자], [빈칸무시] )
사용된 인수 및 변수 알아보기
인수 설명
범위
[Range]
병합할 텍스트가 입력된 범위입니다.
구분자
[String, 선택인수]
텍스트를 병합할 구분자입니다. 기본값은 쉼표(,) 입니다.
빈칸무시
[Boolean, 선택인수]
True일 경우 빈칸을 무시하고 병합합니다. 기본값은 True 입니다.

예제파일 다운로드

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


상세 설명

엑셀 RngConcat 함수는 선택한 범위의 값은 구분자로 병합하는 VBA 함수입니다. 엑셀 2016 이후 버전을 사용중이라면 TEXTJOIN 함수를, 2022 이후 버전에서는 CONCAT 함수를 사용할 수 있습니다.

VBA 편집기가 아닌 일반 시트에서 사용할 경우에는, RngConcat 함수 대신 엑셀에서 기본제공하는 TEXTJOIN 함수 또는 CONCAT 함수를 사용하는 것이 더욱 편리합니다. 😊

오빠두Tip : RngConcat 함수는 VBA에서 엑셀의 일반 함수를 사용할 경우, Application.WorksheetFunction.함수명(인수..) 형태로 다소 복잡하게 작성되는 번거로움을 피하기 위한 대체 함수입니다.
실전 사용 예제
  1. A1:C10 범위의 값을 쉼표를 구분자로 합친 후 메시지박스로 출력하기
    Dim Rng As range
    Set Rng = range("A1:C10")
    MsgBox RngConcat(Rng)
  2. A1:C10 범위의 값을 띄어쓰기로 구분하여 합친 후, D1셀에 출력하기
    Dim Rng As range
    Set Rng = range("A1:C10")
    range("D1").Value = RngConcat(Rng, " ")

엑셀 범위 텍스트 합치기, RngConcat 명령문 동작원리

RngConcat 명령문 전체 코드
Function RngConcat(range As range, Optional delimiter As String = ",", Optional ignore_blank As Boolean = True)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ RngConcat
'▶ 선택한 범위의 값을 구분자로 병합합니다.
'▶ 인수 설명
'_____________range          : 병합할 범위입니다.
'_____________delimiter       : 구분자입니다. 기본값은 쉼표(,)입니다.
'_____________ignore_blank    : True일 경우, 빈칸을 무시하고 병합합니다. 기본값은 True 입니다.
'▶ 사용 예제
's = RngConcat(Range("A1:B1"))
'###############################################################
Dim r As range
Dim result As String
 
For Each r In range
    If r.Value <> "" Then result = result & r.Value & delimiter
Next
 
If Len(result) > 0 Then result = Left(result, Len(result) - Len(delimiter))
RngConcat = result
 
End Function
명령문 동작원리 단계별 알아보기
  1. 범위의 셀을 하나씩 돌아가며, 값이 빈칸이 아닐 경우 결과값으로 출력할 문자열에 추가합니다.
    Dim r As range
    Dim result As String
     
    For Each r In range
        If r.Value <> "" Then result = result & r.Value & delimiter
    Next
  2. 결과값이 있을 경우, 결과값의 맨 마지막으로 추가된 구분자를 제거합니다.
    If Len(result) > 0 Then result = Left(result, Len(result) - Len(delimiter))
  3. RngConcat 함수로 결과값을 출력 후, 명령문을 종료합니다.
    RngConcat = result
5 1 투표
게시글평점
2 댓글
Inline Feedbacks
모든 댓글 보기
2
0
여러분의 생각을 댓글로 남겨주세요.x