본문 바로가기
Range object

[Range 개체] 셀 병합과 관련된 속성과 메서드

2023. 7. 15.

Merge

Merge메서드는 단어 그대로 셀 병합(倂合)을 합니다.

구문은 다음과 같습니다.

Syntax

expression.Merge (Across)

지정된 범위의 각 행에 있는 셀을 별도의 병합된 셀로 병합하려면 True입니다 . 기본값은 False입니다.

셀 병합을 매크로 기록하면 다음과 같습니다.

Sub Macro1()
    '
    ' Macro1 Macro
    '

    '
    Range("E4:I9").Select
    Selection.Merge
End Sub

불필요한 부분을 수정한 코드입니다.

Sub Macro1()
    '
    ' Macro1 Macro
    '

    '
    Range("E4:I9").Merge
End Sub

Across를 True로 설정한 예제입니다.

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("E4:I9").Select
    Selection.Merge True
End Sub

불필요한 부분을 수정한 코드입니다.

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("E4:I9").Merge True
End Sub

간단한 예제 코드입니다.

Sub MergeCellsExample()
    Dim rng As Range
    
    ' 병합할 범위 선택
    Set rng = Range("A1:B2")
    
    ' 셀 병합
    rng.Merge
    
    ' 병합된 셀에 값 설정
    rng.Value = "Merged Cell"
    
    ' 병합된 셀 서식 지정
    With rng
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
        .Interior.Color = RGB(200, 200, 200)
    End With
End Sub

매크로 실행 후 화면입니다.

UnMerge

UnMerge메서드는 병합된 영역을 개별 셀로 분리합니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("E4:I9").Select
    Selection.UnMerge
End Sub

살짝 수정한 코드입니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("E4:I9").UnMerge
End Sub

셀 병합의 개수와 상관없이 모든 병합을 해지하기 위해 실험해 본 코드입니다.

Sub UnmergeAllCells()
    ActiveSheet.Cells.UnMerge
End Sub

Sub UnmergeAllCells()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange.Cells
        If cell.MergeCells Then
            cell.UnMerge
        End If
    Next cell
End Sub

Sub UnmergeAllCells()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange.Cells
        If cell.MergeCells Then
            cell.MergeCells = False
        End If
    Next cell
End Sub

Sub UnmergeAllCells()
    ActiveSheet.UsedRange.UnMerge
End Sub

MergeArea

지정된 셀을 포함하는 병합된 범위를 나타내는 Range개체를 반환합니다. 지정된 셀이 병합된 범위에 없는 경우 이 속성은 지정된 셀을 반환합니다.

MergeArea속성은 단일 셀 범위에서만 작동합니다.

셀 병합 후 값을 입력하는 간단한 코드입니다.

Sub MergeAreaExample()

    Dim rng As Range
    Dim mergeArea As Range
    
    Set rng = Range("A1:B2")
    
    ' 셀 범위 병합
    rng.Merge
    ' 가운데 정렬
    rng.HorizontalAlignment = xlCenter
    rng.VerticalAlignment = xlCenter
    ' 병합된 영역 확인
    
    Set mergeArea = rng.Cells(1, 1).mergeArea
    
    Debug.Print "병합된 영역의 주소: " & mergeArea.Address
    
    ' 병합된 영역의 값을 변경
    mergeArea.Value = "Merged Cell"
    
    ' 변경된 값을 확인
    Debug.Print "병합된 영역의 값: " & mergeArea.Cells(1, 1).Value
    
End Sub

MergeCells

병합된 셀인 경우 True를 반환하고, 병합되지 않은 개별 셀인 경우 False를 반환합니다.

MergeCells를 이용하여 셀 병합하는 간단한 코드입니다.

Sub MergeCellsExample()
    Dim rng As Range
    Set rng = Range("A1:C3") ' 병합할 범위 지정
    
    ' 셀 병합
    rng.MergeCells = True
    
    ' 병합된 셀에 값 입력
    rng.Value = "Merged Cells"
End Sub

MergeCells속성을 이용하여 셀 병합을 해제하는 간단한 코드입니다.

Sub UnmergeCellsExample()
    Dim rng As Range
    Set rng = Range("A1:C3") ' 병합된 범위 지정
    
    ' 병합 해제
    rng.MergeCells = False
End Sub

MergeCells속성과 UnMerge메서드의 차이점은 MergeCells속성은 병합 여부를 확인하고 변경하는데 사용하고 UnMerge메서드는 셀 병합을 해제합니다.