기울임체는 확실하지 않은 내용으로 향후 수정될 수 있음
개인공부용이지만 댓글과 구독은 큰 도움이 됩니다.
학습일자 : 2020.11.20
학습방법 : 업무 자동화 올인원패키지, 패스트캠퍼스
실습목표
기존 엑셀에서 셀 병합을 시도하면 "셀을 병합하면 왼쪽 위의 값만 남고 나머지 값은 잃게 됩니다"라는 알람(Alert)이 뜬다. 그리고 확인을 누르면 A1 : C2까지 하나의 셀로 병합되지만, 값은 선택영역에서 왼쪽 위의 값(1, 1)인 [예시에서는 "고모"]만 남게 된다.
그렇다면 VBA를 활용하여 선택된 영역의 모든 셀의 내용을 유지하면서 병합을 하는 방법을 실습해본다
실습내용
1) Application
어플리케이션이라는 용어가 대중화되어서, 무슨 의미인지 대략적인 감은 오지만 VBA에서 어떻게 쓰이는지는 잘 모르겠다. 여러 설명을 찾아본 바에 의하면, Application은 응용프로그램으로 VBA가 사용되는 모든 MS-office 제품군이 Application이 될 수 있다고 한다. (VBA = Excel이 공식처럼 느껴지지만 사실 다른 MS 제품에도 VBA 엔진이 포함되어 있다.)
지금은 엑셀에서 VBA를 편집중이므로 여기서 Application은 엑셀 프로그램을 지칭한다고 할 수 있다. 자세한 설명이 필요하다면 아래 글에서
- VBA 입문강좌 : 애플리케이션, 오브젝트, 프로퍼티, 그리고 메서드
- 마이크로소프트 공식 홈페이지 : Application
2) DisplayAlerts
마이크로소프트 공식 홈페이지의 설명은 다음과 같다.
해석하면 "만약 마이크로소프트 엑셀에서 매크로가 작동되는 동안 특정 알람(Alert)이나 메세지가 표시(Display)되면 참이다"이다. 예시처럼 True/False를 입력할 수 있기 때문에, 반대로 생각하면 매크로나 작동되는 동안 알람이나 메세지를 켜고 끌 수 있는 셈이다. 예시에서는 앞서 설명했던 셀 병합 메세지를 무시하기 위해서 Display Alerts가 사용되었다.
3) &
엑셀에서 문자열을 이어 붙일 때 &을 쓰는 것과 같다.
4) vbLf, vbCr
vbLf와 vbCr은 비주얼베이징의 상수로 아래와 같은 역할을 한다
- vbLf : 커서나 헤드가 현재 위치에서 다음줄로 이동한다
- vbCr : 현재 줄의 처음으로 커서나 헤드를 이동한다.
아스키코드로는 vbCr이 chr(13)이고, vbLf가 chr(10)이라고 한다. 아스키코드는 나중에 공부를 추가로 해봐야 할 듯. 예시에서는 Enter키를 치는 느낌으로 vbLf가 사용되었다. (띄어쓰기는 간단하게 " "로 표현했다.)
5) [Method] Merge
단어 뜻 그대로 특정 영역을 "병합"하는 함수이다. 병합을 하려면 특정 영역이 설정되어야 하므로, 'Range(영역).Merge' 형식으로 활용된다. 여기서는 Selection을 지정하여 병합을 수행했다.
에러 발생(오답노트)
없었음
모르는 내용이 있다면 VBA 아카이브(클릭)에서 키워드로 검색하기 ▼
'업무자동화 > Excel' 카테고리의 다른 글
[VBA] 007. 로그인 기능 만들기 (0) | 2021.02.24 |
---|---|
[VBA] 006. 워크시트 정렬하기 : MsgBox, Chr(10), Ucase, Move (0) | 2020.12.10 |
[VBA] 004. 중복 데이터 제거하기 : ActiveSheet, =(값 채우기), RemoveDuplication (0) | 2020.11.19 |
[VBA] 003. 데이터와 워크시트 대조하여, 새로운 시트 만들기 : Set, Range, Name (0) | 2020.11.18 |
[VBA] 002. 워크시트 병합하기(2) : Count, CurrentRegion, Offset, Resize, End (0) | 2020.11.10 |
최근댓글