강좌(교육)

[엑셀 VBA강좌] VBA_06 엑셀의 다양한 구성요소(애플리케이션, 오브젝트, 프로퍼티, 메서드)엑셀교실

조아0415 2016. 12. 15. 21:49
[엑셀 VBA강좌] VBA_06 엑셀의 다양한 구성요소(애플리케이션, 오브젝트, 프로퍼티, 메서드)엑셀교실

 

 

엑셀은 다양한 구성요소의 결합으로 이루어져 있습니다.

여러 개의 파일(통합 문서)을 사용할 수 있고, 각 파일에서는 여러 개의 시트들을 사용할 수 있습니다.

또한 각 시트는 여러 개의 셀로 구성되어 있으며, 도형이나 차트를 삽입할 수도 있습니다.

 

엑셀에서는 통합 문서, 워크시트, 셀과 같은 구성 요소를 개체라고 하고, 개체끼리는 일종의 주종 관계가 성립합니다.

예로 셀은 워크시트에 종속되고, 워크시트는 통합 문서에 종속되며, 통합 문서는 엑셀이란 어플리케이션에 종속됩니다.

각 개체 간의 관계를 표시한 것을 개체 모델이라고 하며, 엑셀의 개체 모델을 간단하게 아래와 같이 표현할 수 있습니다.

    

 

VBA를 이용해 원하는 작업을 수행하기 위해 작업할 개체에 접근할 수 있어야 하기 때문에 위와 같은 개체 모델을 이해하는 것은 매우매우(x100) 중요합니다.

엑셀은 워낙 방대한 개체가 존재하기 때문에 전체 개체 모델을 정리해 표시할 수는 없지만, 자주 사용되는 개체의 개체 모델을 정리해보자면 아래와 같습니다.

 

 

 

자주 사용되는 개체 모델에 대하여 어느정도 이해가 되셨나요?

자~ 그럼 VBA를 이용하는데 있어 매우 중요한 몇가지 개념에 대하여 정립해보는 시간을 갖겠습니다.^^;

 

 

 

Application (애플리케이션)

 

우리가 지금 배우고 있는 것이 Visual Basic for Application, 즉 특정한 응용 프로그램 Application을 위한 VB입니다.

여기서는 Application은 Excel이 되는 것입니다.

하지만 VBA 엔진은 엑셀에만 있는 것이 아니고 모든 MS-Office 제품군에 장착되어 있습니다.

만약 MS-Word에서 VBA를 사용한다면 Application은 Word가 되고 MS-Access에서 VBA를 사용한다면 Application은 당연히 Access가 되는것입니다.

쉽게 이해하기 위해 엑셀 자체가 애플리케이션이라고 생각하시면 되겠습니다.

 

 

 

Object (오브젝트 : 개체)

 

오브젝트에는 오브젝트와 컬렉션(Collection) 오브젝트 두 가지 종류로 구분됩니다.

예로 과일에는 사과, 배, 감, 귤 등이 있습니다. 여기서 사과, 배, 감, 귤 등은 각각의 오브젝트가 되며, 이 것들을 합쳐 과일들이라는 컬렉션(집합체)으로 취급합니다.

사과는 오브젝트인 동시에 과일이라는 컬렉션의 한 구성요소가 되겠습니다.

엑셀의 오브젝트 중 뒤에 s가 붙은 것(예를 들면 Workbooks, Worksheets, cells, ...)은 모두 컬렉션 오브젝트라고 보시면 됩니다.

각각의 여러 오브젝트가 모여 하나의 큰 오브젝트를 이루고 있는 컬렉션(집합체)으로 이해하시면 되겠습니다.

 


 

Property (프로퍼티 : 속성)

 

프로퍼티는 속성이라고 합니다.

사과를 오브젝트라고 가정한다면 프로퍼티는 그 사과의 크기, 무게, 가격, 색상 등 오브젝트가 가진 속성이라고 할 수 있습니다.

 

사과.크기 = 20cm

사과.무게 = 200g

사과.색상 = 빨간색

사과.가격 = 20000원

 

위와 같이 속성을 표현할 수 있습니다.

실제로 오브젝트의 속성이 어떤식으로 쓰이는지 아래 코드를 보도록 하겠습니다.

아래의 코드를 모듈에 복사해 넣고 실행시켜 보세요.

모듈시트를 삽입하고 코드를 삽입하는 방법은 지난 강좌(VBA_05 코드 창(Code Window)에서의 작업)에서 설명 드렸습니다.

 

 

Application.UserName은 엑셀을 설치할 때 입력한 사용자의 이름을, Application.Version은 엑셀의 버전 정보를 알려주는 프로퍼티입니다.

여러분이 사용하고 있는 엑셀의 버전이나 사용자 이름 등에 대한 정보는 Application 개체의 속성이 되는 것입니다.

VBA로 프로그래밍을 한다는 것은 어떤 개체가 어떤 속성을 가지고 있는 지를 파악해서 작업을 시키는 것이라 할 수 있습니다.

많은 개체에 대하여 알아야 하며, 그런 다음 각 개체의 속성(프로퍼티)과 행위(메서드)를 파악해 나가면 됩니다.

 

 

 

Method (메서드 : 방법)

 

메서드 간단히 수행할 수 있는 명령을 의미합니다.

어떤 개체(오브젝트)를 삭제하거나, 복사, 이동, 프린트와 같이 개체(오브젝트)에 대한 동작 명령은 메서드(방법)라고 합니다.

메서드는 개체(오브젝트)를 움직이도록 만드는 수단이며 우리말로 방법이라고 번역합니다.

모든 개체(오브젝트)는 적어도 한 개 이상의 프로퍼티(속성)나 메서드(방법)를 가지고 있습니다.

그리고 오브젝트에 명령을 내릴 때, 프로퍼티를 이용할 수도 있고 메서드를 사용할 수도 있습니다.

즉, 이런 프로퍼티와 메서드는 개체(오브젝트)의 구성원이라고 합니다.

 

오브젝트.속성명 = 속성값

오브젝트.메서드

 

위와 같이 속성은 속성값이 들어가며, 메서드는 메서드의 명령만으로 오브젝트를 움직일 수 있습니다.

아래의 코드를 모듈시트에 붙여 넣고 실행시켜 보세요.

 

 

PropertyEX를 실행하면 A1:A20 영역의 셀에 "안녕하세요!"라는 문자열이 입력되셨나요?

이것은 Range 오브젝트의 Value 프로퍼티를 이용한 것입니다.

Range 오브젝트에 대해서는 차후 강좌에서 더 자세히 다루도록 하겠습니다.

 

이번에는 MethodEX 프로시저를 실행시켜 보면 A1:A20 영역에 입력되어 있던 값들이 깨끗히 사라질 것입니다.

이것 역시 Range 오브젝트의 ClearContents 메서드를 사용한 것입니다.

 

위와 같이 프로퍼티와 메서드가 쓰이는 차이점에 대하여 정확히는 아니더라도 어느 정도는 구분이 되셔야 합니다.

프로퍼티와 메서드는 오브젝트를 움직이게 하는 수단으로 오브젝트를 삭제하거나, 복사 또는 이동하거나 하는 등의 동사적 변화를 주는 것은 메서드, 오브젝트의 크기, 색상 등과 같이 속성의 변화를 주는 것은 프로퍼티라고 생각하시면 됩니다.

 

 

 

* 개체 찾아보기

 

VB Editor 메뉴에서 [보기] - [개체 찾아보기] 또는 [F2] Key를 누르면 아래 그림과 같이 개체와 그 구성원(프로퍼티와 메서드)에 대하여 살펴볼 수 있습니다.