오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 범위 텍스트 합치기 :: 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
댓글 2
5 (1개 평가)
HSNA
HSNA 2022.11.22 12:39
안녕하세요. 해당 함수 사용중 중국어(간체)가 물음표로 깨지는 현상이 발생하는데, 어떻게 해결 가능할까요?
오빠두엑셀
오빠두엑셀 작성자 2022.11.26 16:36
안녕하세요.
간체가 깨지는 것은 사용하고 계신 윈도우/엑셀 언어체계가 호환되지 않아 그런것으로 보입니다.
우선 윈도우에 중국어언어가 설치되어 있는지 확인해보시고,
그래도 간체가 깨지신다면 윈도우의 로켈 언어를 중국어로 변경, 이후 엑셀의 사용 언어도 중국어로 변경 후 다시 엑셀을 실행해보세요.
그러면 문제없이 잘 실행될겁니다.^^
답변이 문제 해결에 도움이 되었길 바랍니다. 감사합니다.