Category»

Notice»

Statistics Graph
티스토리 모바일 블로그

 

'메서드'에 해당되는 글 2

  1. 2012.11.22 18. 엑셀 개체 다루기
  2. 2012.11.04 16. 프로그래밍 기본 개념 이해하기
 

1. Workbook, Worksheet 개체


1) 엑셀 개체의 종류

○ 엑셀 VBA에서 사용 가능 한 개체 : Workbook, Worksheet, Range 등이 대표적

▷ Workbook 개체 : 파일 열기, 파일 닫기, 파일 저장

▷ Range 개체 : 셀 선택하기, 셀 값 속성

▷ Worksheet 개체 : 워크시트 만들기, 워크시트 삭제하기, 워크시트 선택하기, 워크시트 보호하기


2) Workbook 개체의 주요 메서드

 메서드

 기능

 사용 예

 Activate

 통합문서 활성화

 Workbooks(“연습.xlsm”).Activate

 Open

 통합문서 열기

 Workbooks.Open Filename:=”C:\연습.xlsm”


▶ 그 외 주요 메서드

 메서드

기능 

사용 예 

Close 

통합 문서 닫기 

 Workbooks(“01_01_before.xlsm”).Close

 ☞‘01_01_before.xlsm’ 통합 문서를 닫습니다.

 PrintOut

통합 문서 인쇄 

 Workbooks("01_01_before.xlsm").PrintOut

☞ ‘01_01_before.xlsm’ 파일을 인쇄합니다.

 PrintPreview

통합 문서 인쇄

미리보기 

 Workbooks("01_01_before.xlsm").PrintPreview

☞ ‘01_01_before.xlsm’ 파일을 인쇄 미리 보기합니다.

Save 

통합 문서 저장 

 Workbooks("01_01_before.xlsm").Save

☞ ‘01_01_before.xlsm’ 파일을 저장합니다.

Save As 

통합 문서

다른 이름으로 저장 

 Workbooks("01_01_before.xlsm").SaveAs "C:\01_01_after.xlsm", Password:="1111"

☞ C 드라이브에 파일명‘01_01_after.xlsm’로 암호 ‘1111’을 설정, 저장 경로가 없으면 현재 문서가 저장된 같은 경로에 저장


3) Worksheet 개체의 주요 메서드

 메서드

 기능

 사용 예

Add

 워크시트 삽입

 Worksheets.Add

Select

 워크시트 선택

 Worksheets(“Sheet1”).Select


▶ 그 외 주요 메서드

 메서드

기능 

사용 예 

Add

새 워크시트 삽입

 Worksheets.Add

☞ 워크시트의 맨 앞에 새 워크시트를 삽입합니다.

 Worksheets.Add After:=Worksheets(Worksheets.Count)

☞ 워크시트의 맨 뒤에 새 워크시트를 삽입합니다.

Activate

여러 개의 워크시트 중

지정한 워크시트 활성화 

 Worksheets(1).Activate

☞ 첫 번째 워크시트를 활성화합니다.

Delete 

워크시트 삭제

 Worksheets(“Sheet1”).Delete

☞ 워크시트를 삭제합니다.

Protect

워크시트 보호 

 Worksheets(“Sheet1”).Protect Password:=”1111”

☞ 암호 ‘1111’을 설정하여 워크시트를 보호합니다.

UnProtect

워크시트 보호 해제 

Worksheets(“Sheet1”).Unprotect

☞ 워크시트 보호를 해제합니다.


▶ Worksheet 개체의 주요 속성

속성

 기능

 사용 예

Name

 워크시트 이름 반환

 Worksheets(1).Name

☞ 첫 번째 워크시트의 이름을 반환합니다.

 Worksheets(1).Name = “1월”

☞ 첫 번째 워크시트의 이름을 ‘1월’로 지정합니다.

Visible

워크시트 표시 여부 반환

 Worksheets(“Sheet1”).Visible = True

☞ Sheet1 워크시트를 표시합니다.

Worksheets(“Sheet1”).Visible = False

☞ Sheet1 워크시트를 숨깁니다.


2. Range 개체 


1) Range 개체

○ 워크시트에 포함된 각각의 셀을 다룰 때 사용하는 개체


① 주요 속성

 속성

 기능

 사용 예

 Offset

 지정한 행/열 번째 셀 참조

 Range(“A1”).Offset(1,2).Select

  CurrentRegion

 연속된 데이터 범위를 참조

 Range(“A1”).CurrentRegion.Select


▶ 그 외 주요 속성

 속성

기능 

사용 예 

Address

 Range 개체의 셀 주소 반환

Range(“A1”).Address

☞ [A1]셀의 셀 주소를 반환합니다. ($A$1) 

Cells

 지정한 행, 열 위치의 셀을 반환

 Cells(1, 1).Select

☞ 1행, 1열 즉, [A1]셀을 반환합니다.

Columns

 열 참조

 Columns(1).Select

☞ 첫 번째 열 즉, A열을 참조합니다.

Rows

 행 참조

 Rows.Select

☞ 전체 행을 선택합니다.

EntireColumn

 셀 범위의 열 전체를 참조

 ActiveCell.EntireColumn.Select

☞ 활성 셀의 열 전체를 참조합니다.

EntireRow

 셀 범위의 행 전체를 참조

 ActiveCell.EntireRow.Select

☞ 활성 셀의 행 전체를 참조합니다.

ColumnWidth

 열의 너비를 반환

 ActiveCell.ColumnWidth = 30

☞ 활성 셀의 너비를 30 pt로 지정합니다.

End

End(xlUp), End(xlDown), End(xlToLeft), End(xlToRight)

 지정한 범위에서 특정 방향(상,하,좌,우)으로 연속된 데이터 범위의 끝 셀을 반환

 Range(“A1”).End(xlDown).Select

☞ [A1]셀에서 아래쪽 방향의 끝 셀을 선택합니다.

 Range(“A1”).End(xlToLeft).Select

☞ [A1]셀에서 오른쪽 방향의 끝 셀을 선택합니다.

Formula

 수식을 반환 받거나 변경

 Range(“C1”).Formula=”=A1+B1”

☞ [C1]셀에 ‘=A1+B1’ 수식을 지정합니다.

NumberFormat

 지정한 범위의 숫자 서식을 반환 받거나 변경

 Range(“A1:A10”).NumberFormat=”#,##0원”

☞ [A1:A10]셀 범위의 숫자 서식을 ‘#,##0원’으로 지정합니다.

Value

 지정한 셀의 값을 반환받거나 변경합니다.

 Range(“A1”).Value=10

☞ [A1]셀의 값을 “10”으로 지정합니다.

WrapText

 ‘텍스트 줄 바꿈’을 설정합니다.

 Range(“A1”).WrapText=True

☞ [A1]셀의 텍스트 줄 바꿈 옵션을 설정합니다.


② 주요 메서드

 메서드

 기능

 사용 예

Select

지정한 셀 선택

 Range(“A1”).Select

ClearFormat

셀 서식 지우기

 Range(“A1:D10”).ClearFormats


▶ 그 외 주요 메서드

메서드

기능

사용 예

Activate

셀 활성화

 Range(“A1”).Activate

☞ [A1]셀을 활성화합니다.

AutoFit

지정한 범위에 있는 열의 너비 또는 행의 높이를 자동으로 조정

 Column(“1:5”).AutoFit

☞ [A:E]열의 너비를 자동으로 조정합니다.

Clear

셀 범위의 값, 수식, 서식을 모두 지움

 Range(“A1:D10”).Clear

☞ [A1:D10]셀 범위의 값, 수식, 서식을 모두 지웁니다.

ClearContents

셀 범위의 값, 수식을 지움

 Range(“A1:D10”).ClearContents

☞ [A1:D10]셀 범위의 값, 수식을 지웁니다.

Copy

셀 복사

 Range(“A1”).Copy

☞ [A1]셀을 복사합니다.

Cut

셀 잘라내기

 Range(“A1”).Cut

☞ [A1]셀을 잘라내기합니다.

Paste

클립보드의 값붙여넣기

 Range("A6").Select ActiveSheet.Paste

☞ 복사한 데이터를 활성시트의 [A6]셀에 붙여넣기합니다.

PasteSpecial

‘선택하여 붙여넣기’ 기능을 이용하여 클립보드의 값 붙여넣기

 Selection.PasteSpecial Transpose:=True

☞ 복사한 선택 영역을 행/열을 바꾸어 붙여넣기 합니다.

Find

지정한 범위에서 찾을 조건에 만족하는 첫 번째 셀 반환

 Range("a3").CurrentRegion.Column(1).Find("최소라").Select

☞ [A3]셀부터 연속된 셀 범위의 1번째 열에서 ‘최소라'를 찾아서 선택합니다.



3. Application 개체


1) Application 개체

○ 엑셀의 모든 개체 중 최상위 개체이면서 엑셀 자신을 의미


2) Application 개체의 주요 속성

속성

기능

사용 예

 StatusBar

 상태표시줄에 메시지 설정

 Application.StatusBar=”매크로 실행 중”

 WorkSheetFunction

 엑셀 함수 사용

Application.WorksheetFunction.Sum(Range(“A1:A10”))


▶ 그 외 주요 속성

속성

설명

사용 예 

CutCopyMode

복사나 잘라내기 상태 해제 

Application.CutCopyMode=False

☞ 복사나 잘라내기 상태를 해제합니다. 

DisplayAlerts

시스템 메시지의 표시 여부 설정 

Application.DisplayAlerts=False

☞ 시스템 메시지를 표시하지 않습니다.

메시지 박스에 응답 단추가 있는 경우 각 대화상자마다 기본으로 선택된 단추 항목을 자동으로 선택합니다. 

예를 들어, 삭제 여부를 묻는 메시지 박스가 표시된 경우 [예] 단추가 자동으로 선택됩니다. 

ScreenUpdating

화면 업데이트 여부 설정 

Application.ScreenUpdating=False

☞ 화면 업데이트 설정을 해제합니다.

(화면 업데이트 : 코드 실행에 따른 화면 변화 표시) 


▶ Application의 단축 접근자

속성

설명

 ActiveCell

 활성 셀 반환

 ActiveSheet

 활성 시트 반환

 ThisWorkbook

 현재 Workbook 개체 반환

 ActiveWorkbook

 활성 통합 문서 반환

 Selection

 선택된 개체 반환


3) Application 개체의 주요 메서드

 매서드

설명 

사용 예 

Quit 

엑셀 프로그램 종료 

Application.Quit

☞ 엑셀 프로그램을 종료합니다. 

InputBox 

Type에서 지정한 데이터를 입력할 수 있게 하는 입력 상자 표시

<Type>

0: 수식, 1: 숫자, 2: 텍스트,

3: 논리값(True, False),

8: Range 개체와 같은 셀 참조,

16: #N/A와 같은 오류 값, 

64: 값의 배열 

Application.InputBox(“사번을 입력하세요.”,”사원 검색”,Type:=2)

☞ 텍스트를 입력하는 입력 상자에 메시지 ‘사번을 입력하세요.’ 제목 표시줄에 ‘사원 검색’을 표시합니다.






  


저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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  워크시트 내의 셀을 선택할 때 발생





저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
 

티스토리 툴바