엑셀 중급_VBA 와 매크로 (2)
먼저 중급 편에서는 직접 코드를 생성하기보다 엑셀의 매크로를 통해서 자동으로 생성된 VBA를 조합하거나 단 몇 줄의 코드만 더하는 형태로 VBA의 코딩을 이해하는 것에 초점을 맞추겠습니다. 클래스를 생성하지 않을 것이고 또 기본 객체만 사용 할 것입니다.
이번 포스팅에서는 매크로를 통해 자동 생성되는 VBA를 이해하기 위한 엑셀의 VBA를 구성하는 가장 기본이 되는 객체의 성질들을 알아보겠습니다.
VBA 코드를 이루는 객체의 3가지 요소
VBA코드는 엑셀의 객체를 가지고 이루어 지며 엑셀의 객체가 기본으로 가지는 절대 불편의 3가지 요소가 Property, Methods, Events 입니다. VBA코드는 객체의 이 3가지 요소를 가지고 주로 이루어 집니다. 엑셀에서 객체는 우리가 실제적으로 엑셀 워크북에서 보는 것들이 모두 포함 된다고 할 수 있습니다. 예를 들어 하나 하나의 셀도 객체이고 행과 열 또한 객체입니다. 즉 객체는 그 하위 객체를 포함 할 수 있습니다. 마치 폴더 개념과 같다고 할 수 있습니다. 우리가 하위 폴더만 다른 곳으로 이동하거나 폴더 전체를 이동할 수 있듯이 엑셀에서 하나의 객체인 셀을 이동하거나 아니면 전체 열을 복사 할 수도 있습니다. 조금 더 구체적인 예를 가지고 살펴 보겠습니다.
Property
Property의 직역은 속성 입니다. 그 객체가 가지고 있는 크기, 위치 등이 property가 됩니다.
Method
Method의 직역은 방법이고 함수와 비슷하다고 생각하시면 됩니다. 그 객체에 내리는 명령, 예를 들어 복사, 삭제 등이 됩니다.
Event
Event는 이벤트 입니다. 언제 코드를 실행할지 결정 합니다. 예를 들어 워크북을 닫기 전에 항상 자동으로 저장하라 란 명령문이 있으면 워크북 닫기 전은 event 이고 저장은 method입니다.
APPLICATION OBJECT (프로그램 객체)
엑셀의 객체는 또 그 상위 객체를 이룰 수 있고 그 중에 최상위에 있는 것이 APPLICATION OBJECT, 즉 엑셀 프로그램 자체 입니다. 폴더로 따지자면 C: 루트 폴더라고 할 수 있습니다. 엑셀 프로그램 그 자체도 하나의 객체로 Property, Method, Events 의 요소를 다 가지고 있습니다. 대표적인 것들을 소개 합니다.
Property
엑셀의 버전 ex) 엑셀 2013, 엑셀 2016
파일 설치 경로
Method
스펠링 체크를 하라
프로그램을 종료 하라
Event
새로운 워크북을 만들 때
워크 북을 종류 할 때
워크북(파일) 객체
엑셀 파일, 즉 워크북 하나 하나도 그 자체의 객체가 될 수 있습니다.
Property
워크북의 이름
포함한 시트의 이름
Method
파일을 닫아라
파일을 저장하라
Event
파일을 닫기 직전에
파일을 저장하기 직전에
워크시트 객체
엑셀의 파일도 객체이지만 그 하위 개념인 워크시트도 엑셀의 파일이란 객체에 속하는 하위 객체 입니다.
Property
워크 시트의 이름
워크 시트의 숨김 여부
Method
워크 시트를 복사하라
워크 시트를 이동하라
Event
워크 시트를 클릭 할 때
워크시트를 이동할 때
여기 까지가 엑셀 VBA의 핵심입니다. 엑셀 VBA코드는 이 3가지 기본 요소를 바탕으로 조합하여 이루어 집니다. 거기에 다른 프로그램적인 요소는 많지 않으며 타 프로그램과 상당히 비슷합니다. 예를 들어 판매량(Property) 이라는 워크시트를 닫을 때(Event) A1셀을(Property) A2 셀(Property)에 복사하라(Method).>> 하나의 프로시져(Procedure)가 완성 됐습니다. 이제 여러분이 멀 하고 싶은지 생각만 하면 이 3가지 요소로 나눌 수 있다는 것을 아실 거고 기본 원리만 이해하면 검색을 통해 어떤 코드도 완성 하실 수 있습니다. 단지 숙달되고 경험을 쌓는데 오래 걸릴 뿐입니다.
'엑셀 중급 > VBA와매크로' 카테고리의 다른 글
05_엑셀 매크로 삭제 정말 쉽게 하기 (0) | 2016.01.04 |
---|---|
04_엑셀 매크로 저장하기 (0) | 2015.12.29 |
03_엑셀 매크로 활용 예제들 (1) | 2015.12.29 |
01_엑셀 VBA 객체 지향 언어의 이해 Object Oriented Language (3) | 2015.12.29 |
00_엑셀 VBA 와 매크로 강의를 시작하면서 (7) | 2015.12.29 |