Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 셀을 병합하는 Merge 함수 사용하기

엑셀(Excel)/VBA
반응형

엑셀의 워크시트에서 셀 영역을 병합하는 경우가 많습니다. VBA 에서는 셀 병합을 위해서 Range 개체의 Merge 함수를 사용해야 합니다. 오늘은 VAB 에서 Merge 와 UnMerge 함수를 사용해 셀 영역을 병합하거나 다시 원래대로 돌리는 방법에 대해 알아 보겠습니다. 

 

 

이번에 만들 코드는 워크시트에서 선택한 셀을 매크로로 병합하는 것입니다. 매크로 작성을 하기 위해 [개발도구] > [매크로] 리본 메뉴를 선택합니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 

셀을 병합하는 소스는 간단합니다. Range 함수로 얻은 영역 객체에서 Merge() UnMerge() 함수를 사용하면 됩니다. Merge() 는 셀 영역을 병합하는 기능을 수행하고 UnMerge() 는 그 반대입니다.

 

 

Sub SellMerge()
   
    '' 셀 병합하기    Range("A2:A5").Merge
   
End Sub
 
Sub SellUnMerge()
   
    '' 셀 병합하기    Range("A2:A5").UnMerge
   
End Sub

 

 

 

위의 소스에서 Merge() 를 수행한 결과 입니다. 워크시트의 A2:A5 영역을 병합했습니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 

Merge() 함수를 실행해서 셀을 병합한 것을 다시 원래 대로 되돌리기 위해 UnMerge() 를 실행했습니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 워크시트 개체를 이용해서 시트 관리하는 방법
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법
엑셀 VBA 시트에서 데이터 영역 구하는 방법
셀 VBA 시트 테두리 그리는 방법

 

 

 

 

◎ 병합 하려는 영역에 데이터가 여러 개를 합칠 때

 

 

그럼 셀 영역에 여러 개의 값이 있을 때는 어떻게 될까요? 아래 그림처럼 병합하려는 셀에 3개의 데이터가 있습니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 

셀 병합 함수를 실행하게 되면 아래 그림과 같이 엑셀 리본 메뉴에서 실행할 때와 같은 메시지가 뜨게 됩니다. 제일 상단에 있는 셀만 남기고 모두 제거가 되는 것이죠. 이렇게 메시지가 뜨기 때문에 본인이 미처 체크하지 못한 상황에서 데이터를 날려 먹을 일은 없습니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 

 

◎ Range 선택한 영역을 바로 합치고자 할 때

 

 

이번에는 Range() 함수의 인수로 영역을 지정하는 것이 아니라 마우스로 드래그해서 영역을 지정했을 때 그것을 인식해서 병합하는 소스입니다. 그럼 영역을 병합하기 위해 매번 소스를 수정하지 않아도 되겠죠. 그 역활을 하는 것이 Selection 속성입니다. Selection 속성은 워크시트에 선택된 영역의 객체를 리턴합니다. 이렇게 리턴한 객체의 함수로 Merge UnMerge 함수를 사용하면 마우스로 선택한 영역을 바로 병합하거나 해제할 수 있습니다.

 

 

Sub SelectionSellMerge()
 
    Selection.Merge
   
End Sub
 
Sub SelectionSellUnMerge()
 
    Selection.UnMerge
   
End Sub

 

 

 

아래 그림처럼 셀을 선택한 상태에서 매크로를 실행했습니다. Range 로 영역을 선택해서 실행한 것과 동일한 결과가 나타납니다.

엑셀 VBA 셀을 병합하는 Merge 함수 사용하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 워크시트 개체를 이용해서 시트 관리하는 방법
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법
엑셀 VBA 시트에서 데이터 영역 구하는 방법
셀 VBA 시트 테두리 그리는 방법
반응형
Posted by 녹두장군

댓글을 달아 주세요