1. VBA 구성요소

 

                    1-1) VBE란

- Visual Basic Editor의 약자로 코드 작업을 진행할 수 있는 편집기이다.

- 엑셀 설정 방법
(1) 메뉴에 [개발 도구] 탭표시 방법
파일 > 옵션 > 리본 사용자 지정 > 리본 사용자 지정 : 개발도구 체크
(2) 매크로가 포함된 통합 문서 저장
다른이름으로 저장 > 매크로 사용 통합 문서(*.xlsm)’형식으로 저장
(3) 매크로 보안 설정
파일 > 옵션 > (좌측)보안 센터 > 보안 센터 설정 > (좌측)매크로 설정 > 모든 메크로 포함

- 실행방법
개발도구 > 코드 > Visual Basic 클릭
또는 Alt+F11

 

                    1-2) VBE 구성요소

- 코드 창 생성 : (위메뉴)삽입 > 모듈
- 직접실행 창 생성 : (위메뉴)보기 > 직접 실행 창(Cltl+G)
- 초기코드
Sub test()
End Sub

창 구분 설 명
메뉴와 도구모음 VBE에서 사용할 수 있는 명령을 메뉴와 도구 모음으로 제공하는 영역
프로젝트 탐색기 현재 열려있는 파일과 각 파일에 속해 있는 모든 항목(워크시트, 폼, 모듈 등)이 계층 구조로 표시되는 영역
속성 창 [프로젝트 탐색기]에서 선택한 개체의 속성을 지정하는 곳
코드 창 VBA 코드를 작성하는 곳 직접 실행창
직접실행 창 직접실행 창은 간단한 실행 결과를 바로 확인할 때 사용하는 창
'?1+2'를 입력하고 [Enter]키를 누르면 결과 3 표시

 

                    1-3) VBE 환경설정

- VB 편집기 사용자는 VB 편집기의 환경을 원하는 대로 설정 가능
(코드 창의 글꼴, 크기, 색상 설정, 코드 작성 시 표시되는 목록이나 설명의 표시 설정, 열리는 창 들의 도킹 여부 등)

- 설정 방법
[도구] → [옵션] 메뉴를 선택, 각 탭에서 원하는 옵션 지정 가능

편집기직접 코드를 작성할 때 필요한 부가적인 정보에 대한 표시여부 설정편집기 형식탭 코드 창에 나타나는 글자의 속성 지정일반일반적인 옵션 사항 설정 (기본값으로 사용하는 것이 일반적)도킹각 창의 도킹 여부 설정

탭 구분 설 명
편집기 직접 코드를 작성할 때 필요한 부가적인 정보에 대한 표시여부 설정
편집기 형식 탭 코드 창에 나타나는 글자의 속성 지정
일반 일반적인 옵션 사항 설정 (기본값으로 사용하는 것이 일반적)
도킹 각 창의 도킹 여부 설정

 

                    1-4) VBA 기본 구조

- 개체 : VBA 프로그램의 각 구성요소, 개체는 계층 구조를 가짐

 

(1-4-1) Application (응용 프로그램)
- 현재 실행 중인 프로그램인 엑셀 자체를 의미
- VBA 코드의 최상위 계층 의미

(1-4-2) Project
- 하나의 통합 문서에 작성되는 모든 VBA 코드 내용
- Workbook (통합문서), Worksheet, Module, 폼 등으로 구성

(1-4-3) Module
- Procedure의 집합, 표준 모듈과 폼 모듈, 클래스 모듈로 구분됨

모듈 구분 설 명
표준 워크시트 모듈(Sheet로 표시되는 모듈), ThisWorkbook 모듈, 공용 모듈이 존재함
- 워크시트 모듈 : 워크시트마다 자동으로 각각 하나씩 만들어짐
- ThisWorkbook 모듈 : 통합 문서 즉, 엑셀 파일에 하나가 만들어 짐
사용자 정의 폼을 디자인하고, 사용자 정의 폼의 컨트롤에 이벤트 프로시저를 작성하는 모듈
클래스 개체를 새롭게 정의해서 사용할 수 있도록 작성하는 모듈
개체의 속성, 메서드, 이벤트를 정의하는 모듈

- 모듈 삽입 : Project에 표준 모듈을 삽입하려면 : 메뉴[삽입] → [모듈]클릭
- 모듈 이름 : 삽입된 모듈의 이름은 [속성] 창의 [이름]에서 지정

(1-4-4)Procedure
- 특정 작업을 실행하기 위해 모여진 실행문의 집합
- 실행 방법에 따라 Sub Procedure, Function Procedure, Property Procedure로 구분됨.
①Sub Procedure
▷ 작성한 코드를 순차적으로 실행하는 Procedure
▷ 매크로 기록기를 사용하여 기록된 엑셀 작업을 순차적으로 실행하는 매크로도 Sub Procedure로 작성됨
②Function Procedure
▷ 엑셀의 함수 기능을 수행하는 Procedure
▷ 엑셀에서 제공하지 않는 함수를 직접 Function Procedure를 작성하여 워크시트에서 함수를 사용하듯이 사용 가능
▷ Sub Procedure처럼 작성한 코드를 순자적으로 실행하지만, Sub Procedure와 다른 점은 실행문의 결과 값을 Function 이름에 반환
- Procedure 작성 방법
① 코드 창 임의의 위치에 클릭한 다음 : 메뉴[삽입] → [프로시저]선택
② 프로시저의 이름, 형식, 범위를 지정한 후, (확인) 단추 클릭

(1-4-5)User Form (사용자 정의 폼)
- 자료의 입출력을 효과적으로 하기 위한 양식(폼)

 

                    1-5) Procedure의 구성요소

(1-5-1) 개체 (Object)
- 엑셀, 통합문서, 통합 문서를 구성하는 워크시트, 셀 등을 모두 개체로 인식
- 대표적 개체 : Application, Workbook, Worksheet, Range 등

(1-5-2) 컬렉션 (Collection)
- 개체들의 집합, 일반적으로 개체 이름에 복수형 ‘s’를 붙여 표현
[ 통합문서의 첫 번째 시트 지칭하기]
방법1 : Sheets(1), WorkSheets(1)
방법2 : Sheets(“Sheet1”), WorkSheets(“Sheet1”)

(1-5-3) 속성 (Property)
- 개체가 가지는 특성으로 셀의 주소, 글꼴, 글꼴 색, 워크시트의 이름 등이 모두 개체가 가지는 속성
- 개체와 속성 사이에는 ‘.(점)’을 찍어 구분
예) 첫 번째 워크시트의 이름을 의미하는 코드 : Sheet1.Name
- 개체와 속성 입력 방법 : 개체.속성 = 속성 값
첫 번째 워크시트의 이름을 1월로 지정하는 코드 → Sheet1.Name = “1월”
[A1]셀에 ‘10’을 입력하는 코드 → Range(“a1”).Value = 10

(1-5-4) 메서드 (Method)
- 개체가 실행할 수 있는 동작
- 워크시트 삽입, 삭제, 특정 셀을 선택, 내용 지우기 등의 동작이 메서드
- 개체와 메서드 사이에 ‘.(점)’으로 구분
예) 개체와 메서드 입력 예시
워크시트 삽입하는 코드 → Sheets.Add
[A1]셀 선택하는 코드 → Range(“A1”).Select

(1-5-5) 이벤트 (Event)
- 개체가 일으키는 사건
- 통합문서를 열거나 닫을 때, 워크시트가 활성화 될 때, 워크시트의 특정 셀이 변경될 때

 

                    1-6) Sub Procedure 실행

- [표준] 도구 모음의 [Sub/사용자 정의 폼 실행(F5)] 버튼을 클릭 / [F5]키 활용

 

                              2. 이벤트 프로시저

 

                    2-1) 이벤트 프로시저란

- 개체에 특정 이벤트가 발생할 때 실행되는 프로시저
예) 통합 문서가 열릴 때 특정 시트를 자동 활성화
특정 시트가 선택되면, 시트의 내용을 수정하지 못하도록 시트 보호

 

                    2-2) 작성 방법

- 이벤트를 실행하는 개체 선택하고, 해당 개체가 발생시키는 이벤트 선택


- [프로시저 목록]에서 원하는 이벤트 선택


- 삽입된 이벤트 프로시저에 해당 이벤트가 발생할 때 실행할 실행문 작성

 

                    2-3) 개체 별 주요 이벤트

- 통합 문서 주요 이벤트

이벤트 설 명
Activate 통합문서가 활성화될 때 발생
BeforeClose 통합문서를 닫기 전에 발생
BeforePrint 통합문서를 인쇄하기(미리보기 포함) 전에 발생
BeforeSave 통합문서를 저장하기 전에 발생
DeActivate 통합문서가 비 활성화될 때 발생
NewSheet 통합문서에 새 워크시트를 삽입할 때 발생
Open 통합 문서를 열 때 발생


- 통합 문서 주요 이벤트 중 모든 워크시트에 공통으로 적용되는 이벤트
▷ 모든 워크시트에 공통으로 적용되는 이벤트를 작성하려면 통합 문서 이벤트 중 Sheet로 시작하는 이벤트를 사용

이벤트 설 명
SheetActivate 통합문서 내 워크시트를 선택할 때 발생
SheetBeforeDoubleClick 통합문서 내 워크시트에서 더블클릭 할 때 발생
SheetBeforeRightClick 통합문서 내 워크시트에서 마우스 오른쪽 버튼을 클릭할 때 발생
SheetCalculate 통합문서 내 워크시트에서 계산이 되는 경우에 발생
SheetChange 통합문서 내 워크시트에서 값이 수정될 때 발생
SheetDeActivate 통합문서 내 워크시트가 비활성화 될 때 발생
SheetSelectionChange 통합문서 내 워크시트 내의 셀을 선택할 때 발생


- 워크시트 주요 이벤트

이벤트 설 명
Activate 워크시트가 활성화될 때 발생
BeforeDoubleClick 워크시트에서 더블클릭할 때 발생
BeforeRightClick 워크시트에서 마우스 오른쪽 버튼을 클릭할 때 발생
Calculate 워크시트에서 계산이 되는 경우 발생
Change 워크시트의 값이 수정될 때 발생
DeActivate 워크시트가 비활성화될 때 발생
SelectionChange 워크시트 내의 셀을 선택할 때 발생

 

출처: [학습(공부)하는 블로그]

'소프트웨어 > Excel' 카테고리의 다른 글

VBA 예제  (0) 2022.09.15
VBA 정리  (0) 2021.11.20
VBA 문법  (0) 2021.11.20
VBA 조건문, 반복문  (0) 2021.10.18
VBA 개체  (0) 2021.09.09

+ Recent posts