엑셀 VBA 속성(Property) 총정리 강의 :: VBA 기초

엑셀 VBA 의 구성요소 중 하나인 속성 (Property)에 대한 기초 이론과 간단한 예제코드를 살펴봅니다.

홈페이지 » 엑셀 VBA 속성(Property) 총정리 강의 :: VBA 기초

엑셀 VBA Property 속성이란 무엇인가요? | 엑셀 VBA 강의 1-6

실습파일 무료E-Book 강의 PPT 파일 완성파일
첨부파일에 이상이 생겼을 경우, 1:1 문의하기로 연락주시면 신속히 해결해드리겠습니다. 

관련강의 살펴보기

엑셀 양식 컨트롤 사용법 총정리 VBA 기초 2강 썸네일크기
엑셀 양식 컨트롤 사용법 및 실전예제 총정리 :: 기초부터 쉽게
엑셀 양식 컨트롤 강의 목차 바로가기 영상강의 예제파일 다운로드 개발자툴 활성화하기 대표 엑셀 양식 컨트롤 종류 및 사용법 강의요약 엑셀을 ...
엑셀 VBA 변수 알아보기 총정리 썸네일_R
엑셀 VBA 변수 알아보기 :: 자주 사용하는 7가지 변수 총정리
VBA 변수 총정리 목차 바로가기 예제파일 및 PPT 자료 다운로드 VBA 변수란 무엇인가요? VBA에서 변수는 꼭 지정해줘야 하나요? 변수 지정을 ...
Loading...

관련 기초내용 포스트 | by 오빠두엑셀

글을 찾을 수 없습니다.

1. VBA에서 Property(속성) 이란 무엇인가?

이전강의에서 VBA에서 개체(Object)를 자동차에 비유하였습니다. 이번에도 개체를 자동차에 비유하여 Property(속성)에 대해 알아보겠습니다.
여기 자동차 1대가 놓여있습니다.이 자동차의 속성은 무엇이 있을까요?
정말 다양하겠지만 아래 몇 가지만 나열해보겠습니다.

vba property 예제 1
자동차로 예를 들면, 아래와같이 속성을 나열할 수 있습니다.
1. 제조사 (Brand)
2. 모델 (Model)
3. 크기 (Size)
4. 연비 (Efficiency)
5. 엔진 (Engine) ...

보시는 바와 같이, 자동차의 속성은 해당 자동차의 특징을 나타내는 각 항목으로 구성되어 있으며 VBA에서 사용하는 Property도 이와 같습니다.

1-A. VBA의 Property는 Object의 계층에 따라 작성됩니다.

아래의 코드를 보겠습니다.

MyCar.Model = “520d”
‘//자동차를 잘 아는 사람이라면 이 모델이 ‘BMW’ 브랜드 제품이라는 것을 알겠지만, 코드를 작성할 때에는 각 속성을 정확히 명시하기 위해 아래와 같이 작성하게 될 것입니다.

MyCar.Brand(“BMW”).Model = “520d”
‘//이렇게 작성을 하게되면, 하위그룹인 모델을 지정하기 위해 상위그룹인 제조사부터 정하고 내려오면서 더욱 명확하게 속성을 이해 할 수 있게 됩니다.

1-B. Property는 세부항목을 가질 수 있습니다.

아래의 코드를 보겠습니다.

MyCar.Color = vbRed
‘// 너무 광범위한 속성입니다. 차의 외부색상인지, 내부색상인지, 전체를 빨간색으로 할 것인지, 무늬만 빨간색으로 할 것인지 명시되지 않았습니다. 따라서 실제 코드에서는 아래와 같이 작성하게 될 것입니다.

MyCar.Outerior.Color = vbRed
MyCar.Interior.Color = vbBlack
‘// 외부색상은 검정색, 내부색상은 빨간색으로 이전보다 더욱 명확하게 속성을 지정하였습니다. 실제 코드를 작성할 때에는 이보다 더 세분화된 내용으로 작성하게 될 것입니다.

2. Property는 또 다른 Object를 반환할 수 있습니다.

몇몇 Property는 아래처럼 간단한 값들을 출력합니다.

Range(“A1”).Address '// : 셀주소를 반환합니다.
Range(“A1”).Value '// : 셀 안에 입력된 값을 반환합니다.
Range(“A1”).Column '// : 셀의 열번호를 반환합니다.
Range(“A1”).RowHeight  '//: 셀의 행높이를 반환합니다.

반면에 대다수의 많은 Property는 또 다른 Object를 반환합니다.

ThisWorkbook.Worksheets(“Sheet1”)
.Range(“A1”).Interior.Pattern '// : 셀의 무늬(패턴)
.Range(“A1”).Font.Color '// : 글꼴 색
.Range(“A1”).Comment(1) '// : 셀의 메모
.Range(“A1”).EntireRow '// : 해당 셀의 전체 행

2-A. Object를 반환하면 무엇이 다른가요?

아래에 간단한 예를 보겠습니다.

Dim Rng as Range
 
Set Rng = Worksheets(“Sheet1”).Range(“A1”)// Rng는 Object이므로 Set을 통해서 변수를 지정해줍니다.
 
Comment = Rng.Comment(1)// Comment가 Object로 반환되므로, Set없이 지정하게 되면 VBA에서는 오류를 출력합니다.// 따라서 각 Property에서 반환되는 값을 잘 이해하고 있으면 더욱 빠르게 코드를 작성 할 수 있습니다.

3. 읽기전용(Read-Only) Property

몇몇 Property는 읽기만 가능합니다. 즉 해당 VBA Property(속성)에 다른 값을 덮어씌우는 것이 불가능 합니다. 대표적으로 아래 항목들이 있습니다.

Range.Address
'// : 범위의 셀 주소입니다. 셀의 고유값이므로 읽기전용입니다.
Application.ActiveWorkbook.Path
'// : 워크북의 경로입니다. 이 또한 엑셀이 실행중인 한 변경 불가능한 고유값이므로 읽기전용입니다.
Application.ActiveWorkbook.Fullname
'// : 워크북의 경로를 포함한 이름입니다. 경로와 마찬가지로 읽기전용으로 사용됩니다.

하지만 대부분의 Property는 읽기와 쓰기 모두 가능합니다.

Range(“A1”).Value = ThisWorkbook.Name
‘// A1셀의 값을 해당 워크북의 파일명으로 덮어씁니다.
Range(“A1”).Font.Color = vbBlue
‘// A1셀의 글꼴색을 파란색으로 변경합니다.
Range(“A1”).RowHeight = Range(“A1”).ColumnWidth
‘//A1셀의 행높이를A1셀의 열넓이 값으로 변경합니다.