문자열 합치기 매크로
엑셀에서 concat(text1, text2...) 함수로 문자열 합치기가 가능하다. 하지만 함수보다 매크로가 깔끔하고 단순하다. 함수 사용으로 인한 잔여 공정도 없지 않은가. 엑셀의 매크로(vba)는 매크로 포함 통합문서만 여러 개 들고 있으면 가진 데이터를 복사해서 가공해서 가져오는 것이 제일 마음 편할 때도 있다. 이 셀, 저 셀은 함수인지 일반 범위 텍스트인지 구분해서 보기도 조금 짜증 나는 일이다.
이번 매크로도 그리 복잡한 코드가 아니니 몇 개 정도 수정하면 원하는 동작과 결과를 가져다줄 수 있을 것이다. 편함과 간편함은 늘 따라다니니 엑셀을 사용하면서 매크로는 사용하지 않을 이유가 없다.
엑셀 매크로 vba 어떻게 사용할까 기초 가이드
엑셀의 매크로(Macro)는 반복적이고 자주 사용되는 작업을 자동화하기 위해 녹화하거나 프로그래밍한 일련의 명령어 집합이며, 엑셀 매크로는 VBA(Visual Basic for Applications)라는 프로그래밍 언어를
minidrawer.tistory.com
매크로 조건 및 코드 (문자열 합치기)
매크로 동작은 다음과 같다. (TXT 파일 아래 공유)
- 선택된 셀은 값(문자열)이 있을 것.
- 문자열 다음 띄워쓰기 " " 포함.
- 마지막 띄워쓰기는 포함 X.
- 선택된 셀의 다음 열에 결과 출력.
Sub 문자열_합치기()
Dim 선택셀 As Range
Set 선택셀 = Selection
' 선택한 셀에 값(문자열)만 판단
If WorksheetFunction.CountA(선택셀) > 0 Then
' 선택한 셀의 문자열 합치기
Dim 결과문자열 As String
결과문자열 = ""
Dim 셀 As Range
For Each 셀 In 선택셀
If 셀.Value <> "" Then
결과문자열 = 결과문자열 & 셀.Value & " "
End If
Next 셀
' 합친 결과의 마지막은 공백 제거
결과문자열 = Trim(결과문자열)
' 결과를 선택한 셀 다음 열에 출력
선택셀(1, 1).Offset(0, 선택셀.Columns.Count).Value = 결과문자열
End If
End Sub
매크로 실행 (문자열 합치기)
매크로의 동작을 설명하자면, 셀에 값(문자열) 등의 유무를 판단하고 문자열을 합친다. 만약 문자열이 없는 셀의 경우 포함하지 않는다. 문자열 합치기 중 문자열 하나와 " " (띄어쓰기) 빈 공간을 추가한다. 하지만 마지막은 공백을 추가하지 않는다. 문자열 합치기가 완성되면 다음 열에 결과를 출력한다.
매크로는 단축키를 설정하는 것이 빠르고 유용하다. 반복되는 작업이 있다면 가장 쓰기 편한 단축키들을 할당해 놓는 것이 좋다. 열 방향만 문자열이 합쳐지는 것만은 아니다. 열과 행 방향의 겹 처진 셀의 선택도 합치기가 가능하다. 왼쪽에서 오른쪽으로, 위에서 아래의 순으로 문자열이 합쳐진다.
매크로 응용 (문자열 합치기)
여러 행의 문자열 합치기가 필요하다면 다음과 같이 매크로를 생성해 볼 수 있다. 여러 셀을 선택하더라도 각 열마다 문자열을 합치고 다음 열에 결과를 나타내도록 말이다.
한 줄씩 각각의 셀의 문자열들이 합치기가 되는 것이다. 보통 이런 방법을 많이 사용하기에 가장 필요한 매크로가 되지 않을까 한다. 아래에 공유된 코드는 앞서 설명한 것이 포함되어 있으니 참조하면 된다.
'엑셀 매크로로 편하게 엑셀하기
사무실 일잘러의 가장 필요한 팁들
minidrawer.tistory.com
'엑셀 팁(excel) > 엑셀 매크로 VBA' 카테고리의 다른 글
엑셀 시트 값 합치기 매크로(vba) #6 (1) | 2023.12.09 |
---|---|
엑셀 특정 값 데이터 검색 매크로(vba) #5 (1) | 2023.12.09 |
엑셀 필요한 매크로 #3 열 너비 자동 맞춤 (0) | 2023.12.04 |
엑셀 필요한 매크로 #2 채워진 셀만 한 줄(행, 열) 선택 (1) | 2023.12.02 |
엑셀 매크로(vba) 원하는 만큼 행 열 추가 (1) | 2023.11.30 |