이 페이지에서
구문
= CombineText ( 범위, [구분기호] )
인수구분
형식 설명
범위
필수
Range
문자열로 합칠 값이 입력된 범위입니다.
구분기호
선택
Variant
문자열을 합칠 때 사용할 구분기호입니다. 기본값은 줄바꿈입니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요Function CombineText(Rngs, Optional delimiter = vbNewLine) As String
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ ConbineText 함수
'▶ 여러 범위의 값을 하나의 문자열로 합칩니다.
'▶ 인수 설명
'_____________Rngs : 문자열로 변환할 범위입니다.
'_____________Delimiter : 각 셀의 문자열을 합칠 때 구분할 구분기호입니다. 기본값은 줄바꿈입니다.
'▶ 사용 예제
'Dim s As String
's = CombineText(Sheet1.Range("A1:A10"))
'###############################################################
Dim vaRng As Range: Dim Rng As Range
Dim sResult As String
If TypeName(Rngs) = "Range" Then
For Each vaRng In Rngs
For Each Rng In vaRng
If Rng <> "" Then
sResult = sResult & Rng & delimiter
Else
sResult = sResult & delimiter
End If
Next
Next
sResult = Left(sResult, Len(sResult) - Len(delimiter))
Else
sResult = Rngs
End If
CombineText = sResult
End Function
활용 예제
범위에 입력된 값을 한 문자열로 합치기
Sub Test()
With Sheet1
.Range("A1").Value = "안녕하세요."
.Range("A2").Value = "반갑습니다."
.Range("A3").Value = "오늘 날씨가 좋네요!"
MsgBox CombineText(.Range("A1:A3"), " ")
End With
' 안녕하세요. 반갑습니다. 오늘 날씨가 좋네요!가 반환됩니다.
End Sub
여쭤보고 싶은 사항이 있어 댓글 남깁니다!
해당 VBA 코드를 활용한다면
A1 : 검정색, 볼드체 적용
A2 : 빨간색, 볼드체 미적용
라고 가정하였을때, 모든 글꼴 스타일이 삭제되고
검정색, 볼드체 미적용 상태로 입력이 되게 되는데..
해당 VBA코드를 응용하여 각 셀에 다르게 적용된 글꼴 스타일(ex. 글꼴색상, 볼드체 옵션 등등)을 유지하면서 문자열을 합칠 수 있을까요?
본 명령문 소스로는 불가능하고 다른 코드를 응용하셔야 합니다.
아래 링크를 한번 확인해보세요.
https://www.exceldemy.com/excel-vba-paste-special-keep-source-formatting/