엑셀 중급_VBA 와 매크로 (2)

먼저 중급 편에서는 직접 코드를 생성하기보다 엑셀의 매크로를 통해서 자동으로 생성된 VBA를 조합하거나 단 몇 줄의 코드만 더하는 형태로 VBA의 코딩을 이해하는 것에 초점을 맞추겠습니다. 클래스를 생성하지 않을 것이고 또 기본 객체만 사용 할 것입니다.

이번 포스팅에서는 매크로를 통해 자동 생성되는 VBA를 이해하기 위한 엑셀의 VBA를 구성하는 가장 기본이 되는 객체의 성질들을 알아보겠습니다.

 

  1. VBA 코드를 이루는 객체의 3가지 요소

    VBA코드는 엑셀의 객체를 가지고 이루어 지며 엑셀의 객체가 기본으로 가지는 절대 불편의 3가지 요소가 Property, Methods, Events 입니다. VBA코드는 객체의 이 3가지 요소를 가지고 주로 이루어 집니다. 엑셀에서 객체는 우리가 실제적으로 엑셀 워크북에서 보는 것들이 모두 포함 된다고 할 수 있습니다. 예를 들어 하나 하나의 셀도 객체이고 행과 열 또한 객체입니다. 즉 객체는 그 하위 객체를 포함 할 수 있습니다. 마치 폴더 개념과 같다고 할 수 있습니다. 우리가 하위 폴더만 다른 곳으로 이동하거나 폴더 전체를 이동할 수 있듯이 엑셀에서 하나의 객체인 셀을 이동하거나 아니면 전체 열을 복사 할 수도 있습니다. 조금 더 구체적인 예를 가지고 살펴 보겠습니다.

    Property

    Property의 직역은 속성 입니다. 그 객체가 가지고 있는 크기, 위치 등이 property가 됩니다.

    Method

    Method의 직역은 방법이고 함수와 비슷하다고 생각하시면 됩니다. 그 객체에 내리는 명령, 예를 들어 복사, 삭제 등이 됩니다.

    Event

    Event는 이벤트 입니다. 언제 코드를 실행할지 결정 합니다. 예를 들어 워크북을 닫기 전에 항상 자동으로 저장하라 란 명령문이 있으면 워크북 닫기 전은 event 이고 저장은 method입니다.

  2. APPLICATION OBJECT (프로그램 객체)

    엑셀의 객체는 또 그 상위 객체를 이룰 수 있고 그 중에 최상위에 있는 것이 APPLICATION OBJECT, 즉 엑셀 프로그램 자체 입니다. 폴더로 따지자면 C: 루트 폴더라고 할 수 있습니다. 엑셀 프로그램 그 자체도 하나의 객체로 Property, Method, Events 의 요소를 다 가지고 있습니다. 대표적인 것들을 소개 합니다.

    Property

    엑셀의 버전 ex) 엑셀 2013, 엑셀 2016

    파일 설치 경로

    Method

    스펠링 체크를 하라

    프로그램을 종료 하라

    Event

    새로운 워크북을 만들 때

    워크 북을 종류 할 때

  3. 워크북(파일) 객체

    엑셀 파일, 즉 워크북 하나 하나도 그 자체의 객체가 될 수 있습니다.

    Property

    워크북의 이름

    포함한 시트의 이름

    Method

    파일을 닫아라

    파일을 저장하라

    Event

    파일을 닫기 직전에

    파일을 저장하기 직전에

     

  4. 워크시트 객체

    엑셀의 파일도 객체이지만 그 하위 개념인 워크시트도 엑셀의 파일이란 객체에 속하는 하위 객체 입니다.

    Property

    워크 시트의 이름

    워크 시트의 숨김 여부

    Method

    워크 시트를 복사하라

    워크 시트를 이동하라

    Event

    워크 시트를 클릭 할 때

    워크시트를 이동할 때

     

    여기 까지가 엑셀 VBA의 핵심입니다. 엑셀 VBA코드는 이 3가지 기본 요소를 바탕으로 조합하여 이루어 집니다. 거기에 다른 프로그램적인 요소는 많지 않으며 타 프로그램과 상당히 비슷합니다. 예를 들어 판매량(Property) 이라는 워크시트를 닫을 때(Event) A1셀을(Property) A2 셀(Property)에 복사하라(Method).>> 하나의 프로시져(Procedure)가 완성 됐습니다. 이제 여러분이 멀 하고 싶은지 생각만 하면 이 3가지 요소로 나눌 수 있다는 것을 아실 거고 기본 원리만 이해하면 검색을 통해 어떤 코드도 완성 하실 수 있습니다. 단지 숙달되고 경험을 쌓는데 오래 걸릴 뿐입니다.

+ Recent posts