안녕하세요.
링크의 유튜브 강좌 10분 2초쯤에서 소개하는 [전체 병합] 기능은 엑셀 2007 버전에 추가되었습니다.
www.youtube.com/watch?v=zsfy-UGesCU&t=9m42s
병합할 행을 일일이 따로 병합하지 않고 전체 범위 선택한 뒤 [홈]-[맞춤]-[전체 병합]을 선택하면 행방향으로 각각 셀 병합이 됩니다.
열방향 전체 병합 기능은 아직 제공되지 않습니다.
그래서 VBA로 작성했습니다.
실습 파일 다운로드
[보기]-[매크로]-[매크로 보기]를 선택하거나 단축키 <Alt + F8>을 눌러 작성된 매크로 내역을 확인할 수 있습니다.
[편집]을 누르면 VBE가 실행되고 작성된 코드를 확인할 수 있습니다.
첫번째 매크로 C_Merge는 선택된 범위에서 열방향으로 병합을 하는데, 병합된 후 첫번째 셀에 있던 내용만 셀에 표시 됩니다.
Public Sub C_Merge()
Dim S As Range
On Error Resume Next
Set S = Selection
For i = 1 To S.Columns.Count
Range(S.Cells(1, i), S.Cells(S.Rows.Count, i)).Merge
Next i
End Sub
두번째 매크로 C_Merge1은 선택된 범위에서 열방향으로 병합을 하는데, 병합된 후 각 셀에 있던 내용을 <Enter>로 줄바꿈해서 셀에 표시됩니다.
Public Sub C_Merge1()
Dim S As Range
Dim rStr As String
Application.DisplayAlerts = False
Set S = Selection
For i = 1 To S.Columns.Count
For j = 1 To S.Rows.Count
If j = 1 Then
rStr = S.Cells(1, i)
Else
rStr = rStr & vbCrLf & S.Cells(j, i)
End If
Next j
Range(S.Cells(1, i), S.Cells(j - 1, i)).Merge
S.Cells(1, i) = rStr
rStr = ""
Next i
Application.DisplayAlerts = True
End Sub
단축키 <Alt + Q>를 눌러 다시 엑셀 창으로 돌아 옵니다.
매크로 실행을 해 보겠습니다.
[B4:C5] 셀 범위를 선택하고 단축키 <Alt + F8>을 누릅니다.
매크로 C_Merge가 선택된 상태에서 [실행]을 누릅니다.
매크로 C_Merge1도 테스트해 보겠습니다.
[D4:F5] 셀 범위를 선택하고 단축키 <Alt + F8>을 누르고, C_Merge1을 선택한 뒤 [실행]을 누릅니다.
매크로가 실행된 결과를 확인할 수 있습니다.
주의할 점은 매크로를 실행해 구해진 결과는 실행 취소 기능으로 원상 회복할 수 없습니다.
이상 마치겠습니다.
수고하셨습니다.
'매크로&VBA' 카테고리의 다른 글
명령문 (0) | 2021.03.07 |
---|---|
셀 배경색 기준으로 합계 구하기 (5) | 2021.01.18 |
숫자를 영어로 나타내기 (0) | 2020.08.31 |
같은 내용을 묶어서 합치기3(중복된 항목 제거, 정렬, VBA) (0) | 2020.06.26 |
같은 내용을 묶어서 합치기2(배열) (0) | 2020.06.25 |