블로그 이미지
주로 인재개발원 등의 사이버학습을 정리, 요약하는 상시학습 블로그입니다. 깨비형
« 2017/10 »
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 31        

Archive»

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

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)

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






  


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

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





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