반응형

안녕하세요.

 

링크의 유튜브 강좌 10분 2초쯤에서 소개하는 [전체 병합] 기능은 엑셀 2007 버전에 추가되었습니다.

www.youtube.com/watch?v=zsfy-UGesCU&t=9m42s

 

병합할 행을 일일이 따로 병합하지 않고 전체 범위 선택한 뒤 [홈]-[맞춤]-[전체 병합]을 선택하면 행방향으로 각각 셀 병합이 됩니다.

 

열방향 전체 병합 기능은 아직 제공되지 않습니다.

그래서 VBA로 작성했습니다.

 

실습 파일 다운로드

열방향 전체병합.xlsm
0.02MB

 

[보기]-[매크로]-[매크로 보기]를 선택하거나 단축키 <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을 선택한 뒤 [실행]을 누릅니다.

매크로가 실행된 결과를 확인할 수 있습니다.

주의할 점은 매크로를 실행해 구해진 결과는 실행 취소 기능으로 원상 회복할 수 없습니다.

 

이상 마치겠습니다.

수고하셨습니다.

반응형

+ Recent posts