엑셀 VBA 강좌(3): 엑셀 Object Model

2.3. 엑셀 Object Model

엑셀 VBA는 엑셀을 다루는 프로그래밍 언어이다. 조금 더 정확하게는 엑셀의 Object Model을 다루는 언어이다. 엑셀이 어떻게 구조화되어 있는지 알고 있어야 잘 다룰 수 있다.

아래 그림 한 장만 이해하면 엑셀 Object Model에서 가장 중요하고 자주 사용하는 개념은 모두 알 수 있다.

엑셀 Object Model 필수 개념
엑셀 Object Model 필수 개념

위 그림의 Excel은 2010 버전이다. 엑셀 Object Model 개념을 이해하는데 더 적합하다고 생각하여 Excel 2010 버전으로 설명한다. Excel 버전과 관계없이 Object Model 개념은 동일하다.

이 그림 한장에 엑셀 Object Model의 필수 개념이 모두 들어있다. 각 개체의 개념과 상세 내용을 살펴보자.

참고로, VBA 편집기에서 “보기 > 개체 찾아보기”를 실행하면 각 개체의 상세 속성(property), 함수(function), 프로시저(sub), 이벤트(event)를 확인할 수 있다.

개체 찾아보기 메뉴
개체 찾아보기 메뉴

(VBA 편집기는 개발도구 리본메뉴에서 “Visual Basic” 버튼을 클릭하거나, 단축키 Alt + F11 을 누르면 나타난다.)

2.3.1. Application

Application은 엑셀 process를 가리킨다. 실행되어 있는 엑셀을 제어하거나 종료하려면 Application 개체를 이용한다.

개체 찾아보기: Application
개체 찾아보기: Application

Application 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Application object (Excel) | Microsoft Docs

Application 개체를 사용하는 예제 코드는 다음과 같다.

'Application 사용 코드 #1: 파일 활성화 하기
Application.Windows("book1.xls").Activate

'Application 사용 코드 #2: 엑셀 종료하기
Application.Quit()

2.3.2. Workbooks

하나의 엑셀 process에서 열고 있는 파일 목록(collection)을 관리한다. 새로운 파일을 생성하거나, 파일을 열거나 닫는 등의 용도로 이용한다. 파일 목록에서 특정 파일을 접근할 때 Workbooks(1), Workbooks(2), …, Workbooks(n)으로 접근할 수 있다.

개체 찾아보기: Workbooks
개체 찾아보기: Workbooks

Workbooks 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Workbooks object (Excel) | Microsoft Docs

Workbooks 개체를 사용하는 예제 코드는 다음과 같다.

'Workbooks 사용 코드 #1: 모든 파일 닫기
Workbooks.Close

'Workbooks 사용 코드 #2: 새로운 파일 생성하기
Workbooks.Add

'Workbooks 사용 코드 #3: 파일 열기
Workbooks.Open FileName:="File.xlsx", ReadOnly:=True

2.3.3. Workbook

하나의 엑셀 process에서 열고 있는 파일 목록중 특정 파일 한개를 가리킨다. 파일을 닫거나, 저장하는 등의 용도로 이용한다.

개체 찾아보기: Workbook
개체 찾아보기: Workbook

Workbook 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Workbook object (Excel) | Microsoft Docs

Workbook 개체를 사용하는 예제 코드는 다음과 같다.

'Workbook 사용 코드 #1: 파일 닫기
Workbook.Close

'Workbooks 사용 코드 #2: 저장하기
Workbook.Save

'Workbooks 사용 코드 #3: 다른 이름으로 저장하기
Workbook.SaveAs Filename:="NewFile.xlsx"

2.3.4. Worksheets

한 파일내의 시트 목록(collection)을 관리한다. 새로운 시트를 생성하거나, 삭제하는 등의 용도로 이용한다.

개체 찾아보기: Worksheets
개체 찾아보기: Worksheets

Worksheets 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Worksheets object (Excel) | Microsoft Docs

Worksheets 개체를 사용하는 예제 코드는 다음과 같다.

'Worksheets 사용 코드 #1: 첫번째 시트 앞에 2개 시트 추가
Worksheets.Add Count:=2, Before:=Sheets(1)

'Worksheets 사용 코드 #2: 시트 개수 출력
Debug.Print Worksheets.Count

'Worksheets 사용 코드 #3: Sheet3 뒤에 Sheet1 복사
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

2.3.5. Worksheet

한 파일내의 시트 하나를 가리킨다. 시트를 활성화하거나, 삭제하기, 숨기기, 보이기 등의 용도로 사용한다.

개체 찾아보기: Worksheet
개체 찾아보기: Worksheet

Worksheet 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Worksheet object (Excel) | Microsoft Docs

Worksheet 개체를 사용하는 예제 코드는 다음과 같다.

'Worksheet 사용 코드 #1: 시트 활성화
Worksheets("Sheet1").Activate

'Worksheet 사용 코드 #2: 시트 삭제
Worksheets("Sheet1").Delete

'Worksheet 사용 코드 #3: 시트 숨기기
Worksheets(1).Visible = False

'Worksheet 사용 코드 #4: 시트 보이기
Worksheets(1).Visible = True

2.3.6. Range

한 시트내의 하나의 cell 또는 여러 cell을 가리킨다. cell에 값을 입력하거나, 삭제하거나, cell들을 병합(merge)하는 등의 용도로 사용한다. 엑셀 VBA로 코딩할 때 가장 많이 사용하는 개체이다.

개체 찾아보기: Range
개체 찾아보기: Range

Range 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.

Range object (Excel) | Microsoft Docs

Range 개체를 사용하는 예제 코드는 다음과 같다.

'Range 사용 코드 #1: A1 cell의 값을 A5에 입력
Worksheets("Sheet1").Range("A5").Value = _ 
​​​​Worksheets("Sheet1").Range("A1").Value

'Range 사용 코드 #2: A1:E10 영역의 내용 삭제
Worksheets(1).Range("A1:E10").ClearContents

'Range 사용 코드 #3: A2(2행, 1열)에 B1:B5 합계 수식 입력
Worksheets(1).Range("A2").Formula = "=Sum(B1:B5)"
Worksheets(1).Cells(2, 1).Formula = "=Sum(B1:B5)"

'Range 사용 코드 #4: 5행 삭제하기
Worksheets(1).Rows(5).Delete

'Range 사용 코드 #5: 3열(C) 삭제하기
Worksheets(1).Columns("C").Delete
Worksheets(1).Columns(3).Delete

'Range 사용 코드 #6: A1:A2 cell 병합
Worksheets(1).Range("A1:A2").Merge

지금까지 살펴본 엑셀 Object Model의 계층구조와 개념, 용도를 간략하게 요약하면 다음과 같다.

엑셀 Object Model 계층 구조
엑셀 Object Model 계층 구조

이상으로 엑셀 Object Model에 대해 간략하게 알아보았다. 개체 찾아보기 기능으로 자세히 살펴보면, 마우스와 키보드로 실행할 수 있는 엑셀의 모든 기능과 속성, 이벤트들이 Object Model로 제공되는 것을 알 수 있다. 따라서, 엑셀 기능에 대해 잘 이해하고 잘 활용하고 있어야 엑셀 Object Model을 잘 활용할 수 있다. 엑셀을 활용하는 만큼 엑셀 VBA를 활용할 수 있다는 의미이다.

다음에는 엑셀 Object Model의 개체를 사용하는 예시 코드를 살펴보고, 엑셀 Object Model에 대해서 조금 더 자세하게 설명하겠다.


<< 관련 글 목록 >>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

ko_KR한국어