이 글은 새로운 블로그로 옮겼습니다. 5초후 자동으로 이동합니다.
▶ 새로운 블로그 주소: https://prodskill.com/
▶ 새로운 글 주소: https://prodskill.com/excel-vba-lecture-3-object-model/
이번 글은 엑셀 Object Model에 대한 내용을 살펴본다.
이전 글에서 이어지는 내용이다.
엑셀 VBA 강좌(2): 엑셀 VBA 기초(1)
이전 글에서 이어지는 내용이다. 엑셀 VBA 강좌(1): 엑셀 VBA 개요 엑셀 VBA 강좌(1): 엑셀 VBA 개요 이전 엑셀 VBA 강좌 예고의 본편 첫글이다. 엑셀 VBA 강좌를 시작합니다. (강좌예고, feat.엑셀 VBA를 권
prodtool.tistory.com
목차
2.3. 엑셀 Object Model
엑셀 VBA는 엑셀을 다루는 프로그래밍 언어이다. 조금 더 정확하게는 엑셀의 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 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.application(object)
Application object (Excel)
docs.microsoft.com
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 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.workbooks
Workbooks object (Excel)
Workbooks object (Excel) In this article --> A collection of all the Workbook objects that are currently open in the Microsoft Excel application. For more information about using a single Workbook object, see the Workbook object. Example Use the Workbooks
docs.microsoft.com
Workbooks 개체를 사용하는 예제 코드는 다음과 같다.
'Workbooks 사용 코드 #1: 모든 파일 닫기
Workbooks.Close
'Workbooks 사용 코드 #2: 새로운 파일 생성하기
Workbooks.Add
'Workbooks 사용 코드 #3: 파일 열기
Workbooks.Open FileName:="File.xlsx", ReadOnly:=True
2.3.3. Workbook
하나의 엑셀 process에서 열고 있는 파일 목록중 특정 파일 한개를 가리킨다. 파일을 닫거나, 저장하는 등의 용도로 이용한다.
Workbook 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.workbook
Workbook object (Excel)
Workbook object (Excel) In this article --> Represents a Microsoft Excel workbook. The Workbook object is a member of the Workbooks collection. The Workbooks collection contains all the Workbook objects currently open in Microsoft Excel. The ThisWorkbook p
docs.microsoft.com
Workbook 개체를 사용하는 예제 코드는 다음과 같다.
'Workbook 사용 코드 #1: 파일 닫기
Workbook.Close
'Workbooks 사용 코드 #2: 저장하기
Workbook.Save
'Workbooks 사용 코드 #3: 다른 이름으로 저장하기
Workbook.SaveAs Filename:="NewFile.xlsx"
2.3.4. Worksheets
한 파일내의 시트 목록(collection)을 관리한다. 새로운 시트를 생성하거나, 삭제하는 등의 용도로 이용한다.
Worksheets 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheets
Worksheets object (Excel)
Worksheets object (Excel) In this article --> A collection of all the Worksheet objects in the specified or active workbook. Each Worksheet object represents a worksheet. The Worksheet object is also a member of the Sheets collection. The Sheets collection
docs.microsoft.com
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 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet
Worksheet object (Excel)
Worksheet object (Excel) In this article --> Represents a worksheet. The Worksheet object is a member of the Worksheets collection. The Worksheets collection contains all the Worksheet objects in a workbook. The Worksheet object is also a member of the She
docs.microsoft.com
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 개체에 대한 자세한 내용은 아래 Microsoft 문서에서 확인할 수 있다.
https://docs.microsoft.com/en-us/office/vba/api/excel.range(object)
Range object (Excel)
Range object (Excel) In this article --> Represents a cell, a row, a column, a selection of cells containing one or more contiguous blocks of cells, or a 3D range. Note Interested in developing solutions that extend the Office experience across multiple pl
docs.microsoft.com
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을 잘 활용할 수 있다. 엑셀을 활용하는 만큼 엑셀 VBA를 활용할 수 있다는 의미이다.
다음에는 엑셀 Object Model의 개체를 사용하는 예시 코드를 살펴보고, 엑셀 Object Model에 대해서 조금 더 자세하게 설명하겠다.
'엑셀 & VBA > 엑셀 VBA 강좌' 카테고리의 다른 글
엑셀 VBA 강좌(8): 엑셀 VBA 언어 기본-자료형(Data type), 자료구조(Data structure) (0) | 2021.08.02 |
---|---|
엑셀 VBA 강좌(7): 엑셀 VBA 언어 기본-문법(Syntax) (0) | 2021.07.24 |
엑셀 VBA 강좌(6): 엑셀 VBA 언어 기본-변수 (6) | 2021.07.17 |
엑셀 VBA 강좌(5): 엑셀 파일 확장자, VBE, 글꼴 설정 (4) | 2021.07.16 |
엑셀 VBA 강좌(4): 엑셀 Object Model 다루기 (5) | 2021.07.13 |
엑셀 VBA 강좌(2): 엑셀 VBA 기초 (6) | 2021.07.08 |
엑셀 VBA 강좌(1): 엑셀 VBA 개요 (12) | 2021.07.05 |
엑셀 VBA 강좌를 시작합니다. (강좌예고, feat.엑셀 VBA를 권장하는 이유) (14) | 2021.07.04 |
댓글