엑셀 범위 텍스트 합치기 :: RngConcat 명령문 사용법 총정리
엑셀 RngConcat 명령문 목차 바로가기
요약
엑셀 RngConcat 함수는 선택한 범위의 값을 구분자로 병합하는 함수입니다.
명령문 구문
= RngConcat ( 범위, [구분자], [빈칸무시] )
사용된 인수 및 변수 알아보기
인수 | 설명 |
범위 [Range] |
병합할 텍스트가 입력된 범위입니다. |
구분자 [String, 선택인수] |
텍스트를 병합할 구분자입니다. 기본값은 쉼표(,) 입니다. |
빈칸무시 [Boolean, 선택인수] |
True일 경우 빈칸을 무시하고 병합합니다. 기본값은 True 입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] RngCont 함수 명령문예제파일
상세 설명
엑셀 RngConcat 함수는 선택한 범위의 값은 구분자로 병합하는 VBA 함수입니다. 엑셀 2016 이후 버전을 사용중이라면 TEXTJOIN 함수를, 2022 이후 버전에서는 CONCAT 함수를 사용할 수 있습니다.
VBA 편집기가 아닌 일반 시트에서 사용할 경우에는, RngConcat 함수 대신 엑셀에서 기본제공하는 TEXTJOIN 함수 또는 CONCAT 함수를 사용하는 것이 더욱 편리합니다. 😊
오빠두Tip : RngConcat 함수는 VBA에서 엑셀의 일반 함수를 사용할 경우, Application.WorksheetFunction.함수명(인수..) 형태로 다소 복잡하게 작성되는 번거로움을 피하기 위한 대체 함수입니다.실전 사용 예제
- A1:C10 범위의 값을 쉼표를 구분자로 합친 후 메시지박스로 출력하기
Dim Rng As range Set Rng = range("A1:C10") MsgBox RngConcat(Rng)
- 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
명령문 동작원리 단계별 알아보기
- 범위의 셀을 하나씩 돌아가며, 값이 빈칸이 아닐 경우 결과값으로 출력할 문자열에 추가합니다.
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 함수로 결과값을 출력 후, 명령문을 종료합니다.
RngConcat = result
- A1:C10 범위의 값을 쉼표를 구분자로 합친 후 메시지박스로 출력하기