블로그 이미지
주로 인재개발원 등의 사이버학습을 정리, 요약하는 상시학습 블로그입니다. 깨비형
« 2017/11 »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Archive»

체험 블로그 마케팅 서비스 OLPOST

Category»

Notice»

Statistics Graph

1. VBA 구성요소 


  1) VBE(Visual Basic Editor)

○ VBE 란?

▷ Visual Basic Editor의 약자

▷ 엑셀을 자동화하기 위해 필요한 코드 개발 및 오류 수정 등의 작업을 진행할 수 있는 편집기

○ 실행 방법

▷ [개발 도구] 탭 → [코드] 그룹 → [Visual Basic] 아이콘 클릭 

▷ Alt + F11


  2) VBE 구성요소

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


  3) VBE 환경 설정

▷ VB 편집기 사용자는 VB 편집기의 환경을 원하는 대로 설정 가능

(코드 창의 글꼴, 크기, 색상 설정, 코드 작성 시 표시되는 목록이나 설명의 표시 설정, 열리는 창 들의 도킹 여부 등)

○ 설정 방법

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



 탭 구분

 설명

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


  4) VBA 기본 구조

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



① Application (응용 프로그램)

▷ 현재 실행 중인 프로그램인 엑셀 자체를 의미

▷ VBA 코드의 최상위 계층 의미


② Project

▷ 하나의 통합 문서에 작성되는 모든 VBA 코드 내용

▷ Workbook (통합문서), Worksheet, Module, 폼 등으로 구성

③ Module

▷ Procedure의 집합, 표준 모듈과 폼 모듈, 클래스 모듈로 구분됨


 표준 모듈  - 워크시트 모듈(Sheet로 표시되는 모듈), ThisWorkbook 모듈, 공용 모듈이 존재함 

 - 워크시트 모듈 : 워크시트마다 자동으로 각각 하나씩 만들어지고

    ThisWorkbook 모듈 : 통합 문서 즉, 엑셀 파일에 하나가 만들어 짐

 폼 모듈  - 사용자 정의 폼을 디자인하고, 사용자 정의 폼의 컨트롤에 이벤트 프로시저를 작성하는 모듈
 클래스 모듈  - 개체를 새롭게 정의해서 사용할 수 있도록 작성하는 모듈

 - 개체의 속성, 메서드, 이벤트를 정의하는 모듈


▶ 모듈 삽입 : Project에 표준 모듈을 삽입하려면 [삽입] → [모듈] 메뉴 활용


▶ 모듈 이름 정의 : 삽입된 모듈의 이름은 [속성] 창의 [이름] 속성에서 지정

④ Procedure

▷ 특정 작업을 실행하기 위해 모여진 실행문의 집합

▷ 실행 방법에 따라 Sub Procedure, Function Procedure, Property Procedure로 구분 됨.


 Sub Procedure  - 작성한 코드를 순차적으로 실행하는 Procedure 

 - 매크로 기록기를 사용하여 기록된 엑셀 작업을 순차적으로 실행하는 매크로도 Sub Procedure로 작성됨

 Function Procedure  - 엑셀의 함수 기능을 수행하는 Procedure 

 - 엑셀에서 제공하지 않는 함수를 직접 Function Procedure를 작성하여 워크시트에서 함수를 사용하듯이 사용 가능

 - Sub Procedure처럼 작성한 코드를 순자적으로 실행하지만, Sub Procedure와 다른 점은 실행문의 결과 값을 Function 이름에 반환


▶ Procedure 작성 방법

① 코드 창 임의의 위치에 클릭한 다음 [삽입] → [프로시저] 메뉴 선택


② 프로시저의 이름, 형식, 범위를 지정한 후, <확인> 단추 클릭


 - Public : 다른 모듈의 프로시저에서 해당 Procedure를 호출 가능

 - Private : 해당 프로시저가 속한 모듈 내의 다른 프로시저에서만 해당 프로시저를 호출 가능


⑤ User Form (사용자 정의 폼)

▷ 자료의 입출력을 효과적으로 하기 위한 양식(폼)



  5) Procedure의 구성요소

(1) 개체 (Object)

▷ 엑셀, 통합문서, 통합 문서를 구성하는 워크시트, 셀 등을 모두 개체로 인식

▷ 대표적 개체 : Application, Workbook, Worksheet, Range 등


(2) 컬렉션 (Collection)

▷ 개체들의 집합, 일반적으로 개체 이름에 복수형 ‘s’를 붙여 표현

[ 통합문서의 첫 번째 시트 지칭하기]

  

  방법 1 : Sheets(1), WorkSheets(1)

  방법 2 : Sheets(“Sheet1”), WorkSheets(“Sheet1”)


(3) 속성 (Property)

▷ 개체가 가지는 특성으로 셀의 주소, 글꼴, 글꼴 색, 워크시트의 이름 등이 모두 개체가 가지는 속성

▷ 개체와 속성 사이에는 ‘.(점)’을 찍어 구분

예) 첫 번째 워크시트의 이름을 의미하는 코드 : Sheet1.Name


▷ 개체와 속성 입력 방법 : 개체.속성 = 속성 값

 첫 번째 워크시트의 이름을 1월로 지정하는 코드 → Sheet1.Name = “1월”

  [A1]셀에 ‘10’을 입력하는 코드 → Range(“a1”).Value = 10


(4) 메서드 (Method)

▷ 개체가 실행할 수 있는 동작

▷ 워크시트 삽입, 삭제, 특정 셀을 선택, 내용 지우기 등의 동작이 메서드

▷ 개체와 메서드 사이에 ‘.(점)’으로 구분

예) 개체와 메서드 입력 예시

   워크시트 삽입하는 코드 → Sheets.Add

    [A1]셀 선택하는 코드 → Range(“A1”).Select


(5) 이벤트 (Event)

▷ 개체가 일으키는 사건

▷ 통합문서를 열거나 닫을 때, 워크시트가 활성화 될 때, 워크시트의 특정 셀이 변경될 때


  6) Sub Procedure 실행

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



2. 이벤트 프로시저 


  1) 이벤트 프로시저란?

○ 개체에 특정 이벤트가 발생할 때 실행되는 프로시저

예) 통합 문서가 열릴 때 특정 시트를 자동 활성화

특정 시트가 선택되면, 시트의 내용을 수정하지 못하도록 시트 보호


  2) 작성 방법

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



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


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


  3) 개체 별 주요 이벤트

○ 통합 문서 주요 이벤트

 이벤트

 설명

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


○ 통합 문서 주요 이벤트 중 모든 워크시트에 공통으로 적용되는 이벤트

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

이벤트 

 설명

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


○ 워크시트 주요 이벤트

 이벤트

설명 

 Activate  워크시트가 활성화될 때 발생
 BeforeDoubleClick  워크시트에서 더블클릭할 때 발생

 BeforeRightClick

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





저작자 표시 동일 조건 변경 허락
신고