아래와 같이 병합된 셀이 가로, 세로, 가로와 세로 모두된 경우를 대상으로 해보겠습니다.
작업할 파일은 아래와 같습니다.
1. 준비
가. 셀 병합 여부 및 유형 판단
VBA에서 병합된 경우는 병합된 셀의 개수를 세어 판단을 하는데, 단순히 셀주소.MergeArea.Count로 하면 병합된 셀의 방향을 알 수 없으므로,
셀주소.MergeArea.Rows.Count와 셀주소.MergeArea.Columns.Count를 사용해야 합니다. 가로,세로 모두 병합인지 알려면 2개를 모두 사용하면 됩니다.
개발도구 - Visual Basic을 눌러 Visual Basic Editor를 실행하고,
직접 실행창에(없다면 보기메뉴에서 직접 실행창을 클릭하면 됨)
?range("a1").Mergearea.Rows.count 라고 입력하고 엔터키를 누르면
2라고 반환됩니다.
만약 a1을 c1으로 수정하고 엔터키를 누르면 1이라고 값이 구해지고, 2는 아래 줄로 내려갑니다.
이번에는 rows를 columns로 수정하고 엔터키를 누르면 1이 구해집니다.
이번에는 c1을 a1으로 바꾸고 엔터키를 누르면 당연히 2가 구해질 것입니다.
이렇게 코드를 작성하기 전에 간단한 결과값을 구하거나 확인하기 위해 직접실행창을 활용할 수 있습니다.
나. 가운데 정렬여부 판단
직접 실행창에 이번에는 ? range("a1").ho까지 입력하면 HorizontalAlignment가 자동으로 완성되므로 엔터키를 누르면(탭키를 누르고 엔터키를 누를 수도 있음)
-4108이란 이상한 숫자가 나옵니다.
이번에는 왼쪽정렬되어 있는(들여쓰기 1이 되어 있어 왼쪽이 떨어진 것임) B4셀로 수정하고 엔터키를 누르면 -4131이란 숫자가 표시됩니다.
그렇다면 오른쪽 정렬되어 있는 c4로 수정하고 엔터키를 누르면(줄의 끝으로 이동할 필요 없음)
이상하게 1이라고 표시됩니다. 이것은 가로 방향으로 정렬이 설정되지 않았다는 의미입니다.
엑셀 아이콘을 눌러서 엑셀 워크시트로 이동한 다음
가로 방향 오른쪽 맞춤 명령을 누른 다음
개발도구 - Visual Basic 명령을 눌러 다시 VBE로 돌아온 다음 한 줄 위로 커서를 이동한 다음 엔터키를 누르면 이번에는 -4152라고 값이 표시됩니다.
그렇지만 숫자를 외우기 어려우므로 xlCenter, xlRight, xlLeft, xlGeneral 등의 엑셀 변수를 사용하는 것이 좋습니다.
직접 실행 창 아래 부분에 ?xlcenter라고 입력하고 엔터키를 누르면 -4108이란 숫자가 구해져서 위 -4108과 일치합니다.
(참고사항 - xl변수 값 알아보기)
표준 도구 모음 줄에서 개체 찾아보기 아이콘을 누른 후 Excel 아래 입력 칸에 xlcenter라고 입력하고 엔터키를 누르면
검색결과가 표시되는데 첫번째 줄이 선택되고, 아래로 내려가면
Const xlCenter = -4108이라고 표시됩니다.
다. 글자 굵게 여부 판단
엑셀로 돌아가서 수량과 금액을 굵게 표시한 후
VBE로 돌아와서
직접 실행창에서 Ctrl + A키를 누른 후 Delete키를 눌러 기존 실행 내용을 지웁니다.
그리고, ?range("c2").Font.Bo까지 입력하면 Bold가 선택되므로 엔터키를 누르면
True가 반환됩니다.
이제 조건에 따른 병합 등 코드를 작성할 준비는 모두 되었습니다.
구체적인 코드는 다음 편에서 다시 다루도록 하겠습니다.
'EXCEL - VBA' 카테고리의 다른 글
엑셀의 유용함, 사용자 지정 함수 (2) | 2022.10.07 |
---|---|
엑셀의 표를 티스토리의 표로 변환하는 매크로(4) - 셀 병합2 (1) | 2022.10.01 |
엑셀의 표를 티스토리의 표로 변환하는 매크로(2) - 가운데 정렬, 굵게 (0) | 2022.09.28 |
엑셀의 표를 티스토리의 표로 변환하는 매크로(1) - HTML 작성 (2) | 2022.09.22 |
네이버 블로그의 글을 티스토리로 쉽게 옮기는 매크로 (3) | 2022.09.21 |