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 |