엑셀의 워크시트에서 셀 영역을 병합하는 경우가 많습니다. VBA 에서는 셀 병합을 위해서 Range 개체의 Merge 함수를 사용해야 합니다. 오늘은 VAB 에서 Merge 와 UnMerge 함수를 사용해 셀 영역을 병합하거나 다시 원래대로 돌리는 방법에 대해 알아 보겠습니다.
▼ 이번에 만들 코드는 워크시트에서 선택한 셀을 매크로로 병합하는 것입니다. 매크로 작성을 하기 위해 [개발도구] > [매크로] 리본 메뉴를 선택합니다.
▼ 셀을 병합하는 소스는 간단합니다. Range 함수로 얻은 영역 객체에서 Merge() 와 UnMerge() 함수를 사용하면 됩니다. Merge() 는 셀 영역을 병합하는 기능을 수행하고 UnMerge() 는 그 반대입니다.
Sub SellMerge() '' 셀 병합하기 Range("A2:A5").Merge End Sub Sub SellUnMerge() '' 셀 병합하기 Range("A2:A5").UnMerge End Sub |
▼ 위의 소스에서 Merge() 를 수행한 결과 입니다. 워크시트의 A2:A5 영역을 병합했습니다.
▼ Merge() 함수를 실행해서 셀을 병합한 것을 다시 원래 대로 되돌리기 위해 UnMerge() 를 실행했습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 워크시트 개체를 이용해서 시트 관리하는 방법 ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법 ▶ 엑셀 VBA 시트에서 데이터 셀 영역 구하는 방법 ▶ 엑셀 VBA 시트 테두리 선 그리는 방법 |
◎ 병합 하려는 영역에 데이터가 여러 개를 합칠 때 |
▼ 그럼 셀 영역에 여러 개의 값이 있을 때는 어떻게 될까요? 아래 그림처럼 병합하려는 셀에 3개의 데이터가 있습니다.
▼ 셀 병합 함수를 실행하게 되면 아래 그림과 같이 엑셀 리본 메뉴에서 실행할 때와 같은 메시지가 뜨게 됩니다. 제일 상단에 있는 셀만 남기고 모두 제거가 되는 것이죠. 이렇게 메시지가 뜨기 때문에 본인이 미처 체크하지 못한 상황에서 데이터를 날려 먹을 일은 없습니다.
◎ Range 선택한 영역을 바로 합치고자 할 때 |
▼ 이번에는 Range() 함수의 인수로 영역을 지정하는 것이 아니라 마우스로 드래그해서 영역을 지정했을 때 그것을 인식해서 병합하는 소스입니다. 그럼 영역을 병합하기 위해 매번 소스를 수정하지 않아도 되겠죠. 그 역활을 하는 것이 Selection 속성입니다. Selection 속성은 워크시트에 선택된 영역의 객체를 리턴합니다. 이렇게 리턴한 객체의 함수로 Merge 와 UnMerge 함수를 사용하면 마우스로 선택한 영역을 바로 병합하거나 해제할 수 있습니다.
Sub SelectionSellMerge() Selection.Merge End Sub Sub SelectionSellUnMerge() Selection.UnMerge End Sub |
▼ 아래 그림처럼 셀을 선택한 상태에서 매크로를 실행했습니다. Range 로 영역을 선택해서 실행한 것과 동일한 결과가 나타납니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 워크시트 개체를 이용해서 시트 관리하는 방법 ▶ 엑셀 VBA 셀 영역 선택하는 여러가지 방법 ▶ 엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법 ▶ 엑셀 VBA 시트에서 데이터 셀 영역 구하는 방법 ▶ 엑셀 VBA 시트 테두리 선 그리는 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 영어 첫 글자만 대문자로 변경하는 방법 (2) | 2024.11.20 |
---|---|
엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법 (0) | 2024.11.11 |
엑셀 VBA 데이터 입력하는 텍스트 박스(Text Box) 사용하는 방법 (4) | 2024.11.02 |
엑셀 VBA 함수 Now 현재 날짜 및 시간 반환하기 (1) | 2024.11.02 |
엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법 (1) | 2024.10.25 |
엑셀 VBA 변수 생명 주기 지정하는 방법, Static 정적 변수 사용법 (1) | 2024.10.23 |
엑셀 VBA 개별 파일 시트 복사해서 하나의 파일에 통합하기 (2) | 2024.10.23 |
엑셀 VBA 여러 시트 데이터 합치기 (18) | 2024.10.15 |