Programming/Excel VBA

Excel 2016 Macro & VBA 바이블 NOTE ②

AubreyJeong 2019. 2. 1. 13:10


EXCEL VBA에서 개체Object의 종류 



엑셀 개체 : 시트                 -> 추가/삭제 불가

VBA 개체 : 모듈, 폼, 클래스 모듈   -> 추가/삭제 가능


엑셀의 모든 개체는 다른 개체와 연결되며, 이런 종속 관계를 설명한 것이 개체 모델이다.







개체 구성원을 이용하는 방법



개체.구성원

개체.속성 = 새 값 '개체의 속성 값변경

대상 = 개체.속성 '개체의 속성 값확인



MsgBox Worksheets(1).Name 

'show me the message box the first Worksheets(index=1)'s name is written on.

Range("A1").Value = 100 

' put the value 100 into the Range("A1") Entity name should be written with " " to send.




개체의 메서드 : 개체가 처리할 수 있는 일. -> 개체에서 어떤 동작을 처리하도록 실행할 수 있는 명령.



개체.메서드

개체.메서드 매개변수 := 값



 cf. 매개변수 : (해당 개체의 )메서드를 실행했을 때 선택할 수 있는 별도의 옵션 항목. 이 때 옵션은 매개변수로 구분된다.

매개변수에 원하는 동작에 맞는 옵션 값을 전달하는 방법으로 코드 구성

ex. 셀을 삭제할 때, 삭제 옵션 항목들이 기재된 상자팝업이 표시되는 것.  


Range("B2").Value = 200

Range("B2").Delete Shift:=xlToLeft 

' shift는 매개변수 xlToLeft는 내장상수(셀을 왼쪽으로 열기 옵션 역할).  매개변수는 위치만 맞으면 생략가능

Range("B2").Delete xlToLeft

' 하지만 특정 옵션만 설정하는 방법을 사용하려면 반드시 매개변수 이름 지정해 옵션 설정. 그 뒤에는 := 

Range("A1:A100").Find(What:="Excel", LookAt:=xlWhole)

' What 매개변수는 '찾을 내용'을 의미한다. LookAt 매개변수는 '전체 셀 내용 일치'옵션




개체 조작


 개체 조작시에는 개체 모델에 따라 접근하는 것이 정석.

 ex. Range라는 개체에 접근하려면 정석적으로는 Application -> Workbook -> WorkSheet -> Range 순이지만 상황에 따라 상위개체 생략하기도 함


Application.Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1").Value="AAA"



1) Application 개체는 엑셀 프로그램의 옵션을 변경하는 것이 아니면 보통 생략

Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1").Value="AAA"

2) 현재 파일에서 동작한다고 가정하면 Workbook 개체도 생략

Worksheets("Sheet1").Range("A1").Value="AAA"

3) 현재 시트에서 동작한다고 가정하면 WorkSheets 개체도 생략가능

Range("A1").Value="AAA"



 "글로벌 개체"만 상위 개체를 생략하고 사용할 수 있다.


ex. Workbooks, Worksheets, WorksheetFunction, Sheets, Range, Cells. Intersect, Names, Charts




 단축 접근자 : 자주 사용하는 주요 개체 shortcut -> Application 개체의 속성으로 제공됨


1) ThisWorkbook : 코드가 저장된 파일 (type : Workbook)

2) ActiveWorkbook : 현재 화면에 표시된 파일 (type : Workbook)

3) ActiveWindow : 현재 화면에 표시된 창 (type : Window)

4) ActiveSheet : 현재 화면에 표시된 시트 (type : WorkSheet)

5) ActiveChart : 활성화된 차트 (type : Chart)

6) ActiveCell : 활성화된 셀  (type : Range)

7) Selection : 선택된 개체 (type : Object)


Ex.


? ThisWorkbook.Name '현재 코드를 개발하는 파일

[SH]SD-BachOPP.xls

? ActiveWorkbook.Name '현재 화면에 표시된 파일

Book2.xlsx

? ActiveSheet.Name

Sheet1

? ActiveCell.Address '화면에 표시된 셀 중 키보드로 입력할 때 값이 입력되는 셀

$I$12

? Selection.Address '현재 (범위) 선택된 개체

$I$12




'Programming > Excel VBA' 카테고리의 다른 글

EXCEL VBA 함수/변수  (0) 2019.02.01
Excel 2016 Macro & VBA 바이블 NOTE ①  (0) 2019.01.31