
먼저 보고 오셔야 할 게시글입니다!
[엑셀 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 코드 내 속성 아이콘: 손 🖐
3️⃣ 메서드 (Method)란?
VBA에서 메서드(Method) 는 개체가 수행하는 동작을 의미합니다.
✅ 메서드 예시
메서드설명
Select | 개체 선택 |
Add | 개체 추가 |
Copy | 개체 복사 |
Delete | 개체 삭제 |
Close | 파일 닫기 |
✅ 메서드 사용 예시
💡 VBA 코드 내 메서드 아이콘: 연두색 육각형 🔷
4️⃣ 문장 (Statement)란?
문장(Statement) 은 개체와 속성 또는 개체와 메서드가 조합된 완전한 문장으로, 프로그램의 최소 단위입니다.
✅ 문장 예시
5️⃣ VBA의 인수 생략 규칙
VBA에서는 일부 인수를 생략할 수 있는 경우가 있습니다.
하지만 모든 경우에 생략이 가능한 것은 아니며, 특정 조건에서만 허용됩니다.
✅ 생략할 수 없는 경우
- 선택적 인수가 아닌 필수 인수일 때
- Application.InputBox "비밀번호 입력", , , , , , , 2 와 같이 중간 생략이 가능하지만 순서가 중요함.
- 하지만 Type:=2처럼 명시적으로 지정하면 중간 생략 가능.
-
vba복사편집Application.InputBox("비밀번호 입력", Type:=2) ' 필수 인수 Type을 명시
- 필수 개체를 지정해야 하는 경우
- Sheets.Add 만 사용하면 기본적으로 첫 번째 위치에 추가됨
- 원하는 위치를 지정하려면 After:= 또는 Before:=를 생략할 수 없음.
-
vba복사편집Sheets.Add After:=Sheets(Sheets.Count) ' 마지막 시트 뒤에 추가
✅ 생략할 수 있는 경우
- 기본값이 존재하는 경우
- vbOKOnly는 기본값이므로 생략 가능.
-
vba복사편집MsgBox "안녕하세요!" ' 기본적으로 vbOKOnly 버튼이 적용됨 MsgBox "안녕하세요!", vbInformation ' 메시지 박스 스타일을 지정
- Active 개체가 자동으로 적용되는 경우
- ActiveSheet는 기본 개체이므로 생략 가능.
-
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 코드의 기본 구조를 이해하고, 실무에서 활용해 보세요! 😊
'PROGRAMMING > EXCEL&ACCESS' 카테고리의 다른 글
[엑셀] 수식 표시하기 : 시트 전체, 선택한 셀, 특정 셀 (0) | 2025.02.19 |
---|---|
[엑셀 VBA] 매크로 안에서 매크로 호출하기 (연속으로 매크로 실행) (0) | 2025.02.18 |
[엑셀 VBA] 엑셀 VBA 조건문과 반복문 (0) | 2025.02.17 |
[엑셀 VBA] 매크로 연습하기 (매크로 기록/상대참조로 기록) (0) | 2025.02.16 |
[엑셀 VBA] Dim 키워드 사용하기 (0) | 2025.02.16 |
댓글