하루목표/일상

엑셀 공부 , 매크로 공부하기 2일차.

우와우앙 2020. 12. 2.
728x90
반응형

엑셀 2019매크로&VBA 무작정 따라하기, 길벗, 이동숙 지음

 

2일차 :

06. 매크로와 함께하는 엑셀 함수 살펴보기

 - VBA를 이용해서 매크로 구현하는 것보다 이미 제공되는 함수 사용하는 것이 더 효과적이다.

 

조건처리 함수 : AVERAGEIFS, COUNTIFS, IF, SUMIFS

찾기 : INDEX, MATCH, VLOOKUP

기타 : INDIRECT, OFFSET, 배열수식 

 

세션 04. vb편집기 창과 vba용어 익히기

01. vb편집기 창의 표시방법과 구성 요소

 

ALT + F11

개발도구 탭 /코드 그룹/ Visual basic

보기 탭 / 매크로 그룹/ 매크로클릭/매크로대화상자 열고 매크로 선택/편집

시트 탭에서 마우스 오른쪽 단추-코드보기

 

 

vb편집기

ㅁ프로젝트 탐색기 창 : vb편집기 창에서는 엑셀 파일을 프로젝트 개념으로 사용함. 

ㅁ속성 창 : 워크시트, 파일, 모듈과 같은 엑셀의 각요소를 개체라고 함. 개체의 색, 글자 크기, 이름 드오가 같이 개체의 특징을 속성이라고 함. [속성] 창에서 선택한 개체의 속성과 해당 값을 표시하고 변경할 수 있음. 

ㅁ코드 창 : 매크로 실제 내용 vba가 적혀져 있는 창. vba코드는 코드의 종류에 따라 글꼴 색이 다르게 표시 됨. 설명(commend)는 녹색, vb예약어는 파란색.

ㅁ직접 실행 창 : 간단한 하마수나 명령문을 직접 실행하여 결과를 확인할 수 있는 창. [직접실행] 창에서 print 명령어나 물음표(?)를 입력하고 vba코드 입력하고 엔터 누르면 실행 결과 확인 가능.

 

vb편집기 환경설정

도구/옵션/옵션대화상자

ㅁ편집기 탭/ 코드 창에서 VBA코드 입력할 때 지원되는 기능

ㅁ편집기 형식 탭/ 코드 창에서 사용하는 글꼴, 크기, 색 등 지정

ㅁ일반 탭/ 사용자 정의 폼에 대한 환경과 VB편집기 창의 일반적인 환경 설정

 

02. 편리하게 VB 편집기 창 사용하기.

03. vba 코드의 기본 규칙 익히기.

ㅁ밑줄(_)의 의미. vba 명령문은 한 줄로 작성해야하지만 윗줄의 끝에 공백과 밑줄(_)을 입력한 후 줄을 변경하여 여러 줄로 작성할 수 있음.

ㅁ마침표(.)의 의미. 엑셀(application), 통합문서(ActiveWorkbook),워크시트(activeSheet, sheet), 셀(cell, ranges)을 개체(object)라는 개념으로 다룸. 

개체들이 실행할 수 있는 작업과 속성을 지정할 경우 그 다음 마침표(.)를 붙여 개체와 구분해야함.

마침표 앞뒤로 공백 있어서는 안됨.

ㅁ단어의 글꼴 색의 의미. 기본적으로 주석 : 녹색, 키워드(sub, end sub)sms vkfkstor, vba식별지(msgbox, application)는 검은색. 자동 구문 검사를 해 잘 못 입력된 코드는 빨간색 표시.

ㅁ대소문자 구분. C나 JAVA등의 일반적인 프로그래밍 언어는 대소문자를 구별하여 사용하지만, VBA는 상관없음. VBA는 소문자로 입력시 대소문자로 표시됨. 소문자로 입력하는 버릇이 좋다.

 

 

 

04.핵심 VBA 용어 정리하기.

ㅁ개체 (Object)

개체는 작업의 대상이 되는 각각의 실체를 말함. 

ㅁ프로시저(procedure)

프로시저는 특정 작업을 처리하는 명령문의 집합으로 'sub프로시저''function 프로시저''property 프로시저'로 구분함.

 

매크로 정의 / sub

sub 매크로명(매개변수)

명령문

end sub

 

sub hello()

msgbox "hello!!!"

end sub

 

함수정의/function

function 함수명(매개변수)

명령문

end function

 

function fnadd(A,B)

C= A*B

fnadd=C

end function

 

개체속성정의/property

property get[let[set] name (매개변수)

명령문

[get인 경우에만 name=expression]

end Property

 

property get pencololr() as string 

pencolor = "blue"

end property

 

매개변수(parameter)와 인수(argumnet)는 같은 의미로 사용된다. 매크로나 함수를 정의 할 때는 매개변수, 매크로 호출할 때 는 함수를 사용하면서 값을 전달할 때는 인수라고 부릅니다.

 

ㅁ명령문(statement)

문장의 기능에 따라 '선언문'과 '실행문'으로 구분합니다.

명령문은 약속된 단어(예약어, reserved word또는 키워드)를 이용하여 특별한 기능을 실행하고, 하나 이상의 명령문이 모여 하나의 프로시저가 작성됩니다.

 

ㅁ 컬렉션(collection)

컬렉션은 관련 있는 1개 이상의 개체 집합. 특정 개체들에 대한 작업을 한번에 처리할 때 ㅅ용한다.

일반적으로 개체 이름에 복수형 s를 붙여 컬렉션으로 사용한다.

하나의 시트 개체는 sheet

통합문서를 구성하는 전체시트(시트, 차트시트 등)를 한번에 표현할떄는 sheets라고 표현한다.

main이라는 이름을 가진 첫번째 시트를 가르킬 때, sheets(1) 또는 sheets("main")이라고 한다.

 

ㅁ 속성(property)

개체의 크기, 색, 모양 등과 같은 개체의 특성이나 상태를 말한다. 개체와 속성사이는 마침표를 이용해서 구분한다. 

속성에 값을 대입할 때는 '개체.속성=값'형식(대입문)으로, sheets(1).name="일사분기"

속성에 저장된 값을 가져올때는 '개체.속성'형식으로 사용한다. msgbox sheets(1).name

 

ㅁ 메서드(method)

개체가 실행할 수 있는 동작 및 행동. 개체에 따라 사용가능한 속성고가 메서드가 다름.

개체와 메서드를 빈 칸 없이 마침표로 구분하여 개체.메서드 형식으로 사용함.

 

매개변수가 없는 형태 

개체.매서드

sheets(1).select

첫번째 시트 선택

 

매개변수가 있는 형태

개체.매서드 매개변수

sheets(1).add after:=sheets(1)

첫번째 시트의 뒤에 새 시트 삽입

 

ㅁ 이벤트(event)

이벤트는 개체에 어떤 사건이 발생할 때로, 개체에 따라 이벤트가 다름

특정 이벤트에 실행되는 매크로를 이벤트프로시저(evnet procedure)라고 함. 개체와 이벤트 종류 선택하면 자동으로 삽입되는 프로시저.

개체명_이벤트종류()형식

 

ㅁ 클래스(class)와 인스턴스(instance)

클래스는 개체를 정의하는 것으로 개체의 속성과 메서드, 이벤트 등을 정의하여 개체를 사용할 수 있게 한다.

이렇게 정의된 클래스를 복제하여 실제 사용하는 개체를 만드는 과정을 인스턴스라고 한다.

 

05.[직접실행]창의 사용법 익히기

ㅁ ?와 print문 이용해 결과 확인하기.

[직접실행] 창은 ctrl + g

 

06.모듈 삽입해 표에 자료 추가 매크로 작성하기

88p 매크로 기록기를 이용하여 표의 끝의 빈 행을 찾아 이동하는 기능 작성 함.

 

 sub 신규자료입력()

    application.goto sheets("전체자료").range(a1), true

    range(a8).select

    activewindow.freezepances=false

    activewindow.freezepances=true

    range(b7).end(xldown).offset(1,0).select

 end seb

 

a8선택

활성시트 틀고정 해제

활성시트 틀고정 (a8기준)

b7-> 표 하단 셀(end(xldown) -> 표 하단 다음셀(offset1,0)-선택(select)

 

 

 

 

 

728x90
반응형

댓글