매크로&VBA

by 김현석

1. 매크로

- 반복되는 작업을 자동화하는 기능

- 매크로를 기록하는 경우 작업을 완료하는데 필요한 모든 단계가 매크로 레코더에 기록

(리본 메뉴에서의 탐색은 기록되지 않음)

- 매크로를 기록하는 경우 기본적으로 셀은 절대 참조로 기록되며, 상대 참조로 기록하고자 할 경우 '상대 참조로 기록'을 선택한 다음 매크로 기록을 실행한다.


* 매크로를 실행할 바로가기 키 지정 가능

- 엑셀의 기본 바로가기 키와 동일한 경우, 매크로의 바로가기 키가 우선 실행된다.


*매크로 이름이나 셀의 이름 정의 할 때

- 공백 안됨

- 첫 글자는 문자로 시작

- 예약어(*,?,.)는 안됨


<매크로의 저장위치>

- 개인용 매크로 통합 문서: personal.XLSB 에 저장되며, 엑셀을 시작할 때마다 자동으로 로드되어 다른 통합 문서에서도 실행할 수 있다.

- 새 통합 문서: 새로운 통합 문서 창을 열고 매크로를 저장한다.

- 현재 통합 문서: 현재 작업하고 있는 통합 문서에만 적용시킬 때 사용한다.


2. 양식 컨트롤과 ActiveX 컨트롤

- 양식 컨트롤이나 ActiveX 컨트롤을 이용해 매크로를 실행할 수 있지만, 주로 양식 컨트롤을 이용한다.

- ActiveX 컨트롤은 다양한 이벤트에 반응할 수 있지만, 호환성은 양식 컨트롤보다 낮다.

- 양식 컨트롤은 [디자인 모드]에서도 해당 컨트롤에 지정된 기능을 실행할 수 있지만, ActiveX 컨트롤은 [디자인 모드]에서 해당 컨트롤에 지정된 기능을 실행할 수 있다.

- 양식 컨트롤의 '단추'를 클릭하면 [매크로 지정] 대화상자가 자동으로 표시되어 실행할 매크로 지정 가능


3. 매크로 실행

- 매크로 대화 상자 단축키: alt +f8

- 엑셀의 매크로는 VBA 언어로 기록되며, VBE를 통해 매크로를 편집할 수 있다.

* 한단계씩 코드 실행: 선택한 매크로를 한줄씩 실행한다.

* 편집: 매크로를 VBE를 통해 편집할 수 있다.

* 옵션: 매크로의 바로 가기 키나 설명을 수정한다. (매크로의 이름은 수정 X -> VBE창에서 수정할 수 있다.)


프로시저

Do Until 조건

명령문

Loop

-> Until의 조건을 만족할 때 까지 해당 명령문을 반복 실행


MsgBox: 메세지를 보여줄 때 사용

- magbox("메세지", 버튼종류, "타이틀")


버튼종류

- vbOkOnly - vbCritical X

- vbOkCancel - vbQuestion ?

- vbYesNoCancel - vbExclamation !

- vbInformation i



more

- 개체: Application(엑셀자체), Workbook(엑셀 통합문서), Worksheet(워크시트), Range(범위)

-------> 개체에는 메서드, 속성이라는게 있다. 개체._____

- Range: 범위를 의미

range("A1:C1"): [A1:C1] 셀을 의미

range("A9"): [A9]셀을 의미

range("A:A"): A열을 의미

- Columns: 열을 의미

columns(1): 1열을 의미 = A열을 의미

columns("B") : B열을 의미

clear

clear: 모두지우기

clearformats: 서식만 지우는 코드

clearcontents: 내용 지우기

clearcomments: 메모 지우기


* VBA코드 예시

Range("A1).Select -> [A1] 셀을 선택

Range("A1:C1").Select -> [A1:C1] 범위 선택

Range("A:A").Font.Bold=True -> A열의 글꼴 서식을 굵게 설정

Range("1:1").Font.Bold=True -> 1행의 글꼴 서식을 굵게 설정

WokSheets.Add -> 새로운 워크시트를 삽입

WorkSheets("Test").Cells(3,1).Value="합격" -> Test시트의 [A3]셀에 합격을 입력

WorkSheets("sheet2").Cells(4,1).Font.Size=8 -> sheet2 시트의 [A4]셀의 크기를 8포인트로 설정

WorkSheets("sheet3").Visible=False -> sheet3 시트를 숨긴다.

WorkSheets("sheet4").Cells(5,1).ClearFormats -> sheet4시트의 [A5] 셀의 서식을 지운다.


fadf.png
897456123.png


keyword
작가의 이전글인쇄