안녕하십니까 춤추는초코칩입니다.
업무 중에 필요한 엑셀VBA를 기록하고 있습니다.
지난 시간에 "Split, 문자열 나누기"를 했습니다.
오늘은 "문자열 합치기" 혹은 "텍스트 합치기" 기능입니다.
엑셀 VBA의 Join 함수는 배열의 항목을 결합하여 하나의 문자로 반환합니다.
함수의 구문
Join ( SourceArray, [Delimiter] )
함수의 인수
SourceArray | 필수 | 결합하려는 문자열 |
Delimiter | 선택 |
각 문자열을 구분하는데 사용되는 구분 기호로, 생략하면 공백(" ")으로 설정 |
'예제1. 문자열 합치기, 구분자 기본설정(" ")
Sub TextJoin()
' Join together the strings "John", "Paul" and "Smith".
Dim fullName As String
Dim names(0 To 2) As String
names(0) = "John"
names(1) = "Paul"
names(2) = "Smith"
fullName = Join(names)
' The variable fullName is now set to "John Paul Smith"
Cells(1, 1) = fullName
End Sub
'예제2. 문자열 합치기, 구분자 "\"
Sub TextJoin2()
' Join together the strings "C:", "My Documents" and "DataFiles".
Dim fullPath As String
Dim dirs(0 To 2) As String
dirs(0) = "C:"
dirs(1) = "My Documents"
dirs(2) = "DataFiles"
fullPath = Join(dirs, "\")
' The variable fullPath is now set to "C:\My Documents\DataFiles"
Cells(2, 1) = fullPath
End Sub
마지막으로 Join과 Split 함수를 활용하면, 2개의 문자 혹은 문자열을 하나의 문자열로 만들 수 있습니다.
'예제3. 두개 문자, 문자열을 하나의 문자열로 만들기
Sub TextJoin3()
Dim names() As String
Dim dirs() As String
Dim fullName As String
Dim fullPath As String
Dim Emp() As String
'Step1. 2개 배열로 불러오기
names = Split(Cells(1, 1))
dirs = Split(Cells(2, 1), "\")
'Step2. 문자열 합치기,구분자(,)
fullName = Join(names, ",")
fullPath = Join(dirs, ",")
'Step3. 2개 문자를 하나의 임시 배열로 만들기
Emp = Array(fullName, fullPath)
'Step4. 문자열 합치기, 구분자(,) 후 문자열 나누기
Full = Split(Join(Emp, ","), ",")
'Step5. 문자열 출력하기
For i = 0 To UBound(Full)
Cells(i + 4, 1) = Full(i)
Next i
End Sub
참고자료
'엑셀' 카테고리의 다른 글
[엑셀VBA] Open, Close 파일 열기, 닫기 (0) | 2020.10.20 |
---|---|
[엑셀VBA] Save, SaveAs 저장하기 (0) | 2020.06.22 |
[엑셀VBA] 목차 만들기(Sheet Hyperlink) (0) | 2020.04.22 |
30. [엑셀] 꺾은선 그래프 0, 빈 셀 연결하기 (0) | 2020.04.20 |
[엑셀VBA] 셀 선택, 범위 선택(Cells, Range, Offset) (2) | 2020.04.03 |