본문 바로가기
PROGRAMMING/EXCEL&ACCESS

[엑셀 VBA] VBA의 구성 요소 자세히 알아보기 (개체, 속성, 메서드, 인수)

by Hey Nary 2025. 2. 20.
728x90
반응형

 

먼저 보고 오셔야 할 게시글입니다!

 [엑셀 VBA] 엑셀 VBA 기초 문법_문법 구조와 코드 다루기

 

위 게시글에서 간단하게 다뤘던 VBA 의 구성 요소들에 대해 좀 더 자세히 알아보겠습니다.

 

반응형

 


 

엑셀 VBA(Visual Basic for Applications)는 개체(Object), 속성(Property), 메서드(Method), 문장(Statement) 등의 요소로 구성됩니다.
이 글에서는 VBA 코드의 기본 구성 요소를 알아보고, 인수 생략 규칙도 함께 살펴보겠습니다.


1️⃣ 개체 (Object)란?

VBA에서 개체(Object)엑셀에서 처리 대상이 되는 독립적인 요소를 의미합니다.

개체 예시

  • Workbook (파일)
  • Worksheets (시트)
  • Chart (차트)
  • Cell (셀)

개체의 계층 구조

VBA에서 개체는 상위 개체 → 하위 개체로 단계별로 지정됩니다.

ThisWorkbook.Sheets("Sheet1").Range("A1") 'Workbook → Worksheet → Range
Sheets("Sheet1").Range("A1") 'Worksheet → Range
Range("A1") 'Range만 지정
 

💡 개체를 생략하면 VBA가 기본적으로 활성화된 개체를 참조합니다.
예를 들어, Range("A1")은 ActiveSheet.Range("A1")와 동일합니다.

개체를 지정하는 방법

방식 예시
이름으로 지정 Sheets("Sheet1"), Range("A1")
순번(인덱스)으로 지정 Sheets(3), Cells(1,1), Workbooks(2)

특수한 단수형 개체

개체명 설명
ActiveCell 현재 선택된 셀
ActiveSheet 현재 활성화된 시트
ActiveWorkbook 현재 활성화된 통합 문서
ThisWorkbook 코드가 포함된 통합 문서

2️⃣ 속성 (Property)란?

VBA에서 속성(Property) 은 개체의 특성을 설정하거나 가져오는 역할을 합니다.

속성 예시

속성 설명
Name 개체의 이름
Color 개체의 색상
Size 개체의 크기
Value 개체의 값

속성 사용 방법

vba
복사편집
' 셀의 색상을 파란색으로 변경 Range("A1").Font.Color = vbBlue ' 현재 셀 아래로 한 칸 이동한 위치에 값 입력 ActiveCell.Offset(1, 0).Value = 10

다른 개체의 속성값 대입하기

vba
복사편집
' A1의 수식을 B1:B10에 동일하게 적용 Range("B1:B10").Formula = Range("A1").Formula

💡 VBA 코드 내 속성 아이콘: 손 🖐


3️⃣ 메서드 (Method)란?

VBA에서 메서드(Method) 는 개체가 수행하는 동작을 의미합니다.

메서드 예시

메서드설명

Select 개체 선택
Add 개체 추가
Copy 개체 복사
Delete 개체 삭제
Close 파일 닫기

메서드 사용 예시

vba
복사편집
' A1 셀을 선택 Range("A1").Select ' 현재 워크시트의 열 전체 크기 자동 맞춤 Columns("A:J").AutoFit ' 새로운 시트를 추가 Sheets.Add

💡 VBA 코드 내 메서드 아이콘: 연두색 육각형 🔷


4️⃣ 문장 (Statement)란?

문장(Statement) 은 개체와 속성 또는 개체와 메서드가 조합된 완전한 문장으로, 프로그램의 최소 단위입니다.

문장 예시

vba
복사편집
' A1 셀에 100 입력 Range("A1").Value = 100 ' 새로운 시트를 추가 Sheets.Add

5️⃣ VBA의 인수 생략 규칙

VBA에서는 일부 인수를 생략할 수 있는 경우가 있습니다.
하지만 모든 경우에 생략이 가능한 것은 아니며, 특정 조건에서만 허용됩니다.

생략할 수 없는 경우

  1. 선택적 인수가 아닌 필수 인수일 때
    • Application.InputBox "비밀번호 입력", , , , , , , 2 와 같이 중간 생략이 가능하지만 순서가 중요함.
    • 하지만 Type:=2처럼 명시적으로 지정하면 중간 생략 가능.
  2. vba
    복사편집
    Application.InputBox("비밀번호 입력", Type:=2) ' 필수 인수 Type을 명시
  3. 필수 개체를 지정해야 하는 경우
    • Sheets.Add 만 사용하면 기본적으로 첫 번째 위치에 추가됨
    • 원하는 위치를 지정하려면 After:= 또는 Before:=를 생략할 수 없음.
  4. vba
    복사편집
    Sheets.Add After:=Sheets(Sheets.Count) ' 마지막 시트 뒤에 추가

생략할 수 있는 경우

  1. 기본값이 존재하는 경우
    • vbOKOnly는 기본값이므로 생략 가능.
  2. vba
    복사편집
    MsgBox "안녕하세요!" ' 기본적으로 vbOKOnly 버튼이 적용됨 MsgBox "안녕하세요!", vbInformation ' 메시지 박스 스타일을 지정
  3. Active 개체가 자동으로 적용되는 경우
    • ActiveSheet는 기본 개체이므로 생략 가능.
  4. vba
    복사편집
    Range("A1").Value = 100 ' ActiveSheet.Range("A1").Value 와 동일

🎯 정리: VBA 코드의 주요 구성 요소

구성 요소설명예시

개체 (Object) 엑셀에서 처리 대상이 되는 요소 Workbook, Worksheet, Range
속성 (Property) 개체의 특성을 설정하는 요소 Name, Color, Value
메서드 (Method) 개체가 수행하는 동작 Select, Copy, Delete
문장 (Statement) 개체와 속성 또는 개체와 메서드가 조합된 코드 Range("A1").Value = 100
인수 생략 규칙 필수 인수는 생략 불가, 기본값이 있는 경우 생략 가능 MsgBox "Hello" (기본 버튼 옵션 생략 가능)

🚀 마무리

VBA에서는 개체, 속성, 메서드, 문장이 유기적으로 연결되어 동작합니다.
또한 필수 인수와 기본값이 있는 인수의 차이를 이해하면 코드 작성이 더욱 쉬워집니다.
이제 VBA 코드의 기본 구조를 이해하고, 실무에서 활용해 보세요! 😊

728x90
반응형

댓글