작성일자: 2020.03.06
최근 수정일자: 2020.03.06
VBA 코드 시작하기
"VBA 게시판-기초"의 3 번째 포스팅에서 VBA,
이전에 MACRO를 우선 알아보았던 이유는,
매크로를 아는것이 VBA를 시작하는 데 있어 기초가 될 수 있기 때문이다.
3. 엑셀 매크로(Excel Macro)란 무엇인가, 엑셀 매크로 만드는 법, 상대 참조 매크로
작성일자: 2020.03.04 최근 수정일자: 2020.03.04 엑셀 매크로(Excel Macro)란 무엇인가, 엑셀 매크로 만드는 법, 상대 참조 매크로 엑셀에서 개발 도구 TAB 을 활성화 하게 되면 아래쪽 리본 메뉴 구간에 다양한..
blog.officeuniv.com
1. 매크로와 VBA의 관계 알아보기
1.1 우선 매크로 하나 만들기
1) "상대 참조로 기록"을 꺼둔 상태에서 신규 매크로 작성을 한다
2) 신규 매크로에는 A1 셀에 숫자 1을 기입하고 Enter를 친다
3) 기록 중지를 한다.
결과값
이렇게 매크로가 완성되었다면,
위의 리본 메뉴->"매크로" 버튼 우측에 있는 "Visual Basic" 버튼 클릭
또는 Alt+F11 클릭
1.2 VBA 화면 구조
그러면 위와 같은 화면이 나온다.
"프로젝트" 아래의 목록이 다르다고 해서 걱정할 것 없다.
왼쪽에 보면 "모듈"의 + 버튼을 눌러 "Module 1"을 더블 클릭하자.
그리고 화면의 구조부터 살펴보자.
① 메뉴 [MENU]
- 일반적인 프로그램과 비슷하게 파일, 편집 등의 메뉴
② 프로젝트 탐색기 [Project Explorer]
- 현재 열려 있는 엑셀 문서를 트리 형태로 표시하고,
파일에 대한 정보를 제공해 주는 창
프로젝트 탐색기가 화면에 보이지 않는 경우
- 상단의 메뉴-보기- 프로젝트 탐색기를 선택
- 또는, 단축키 Ctrl + R키
③ 코드 창 [VBA code editor 또는 Script Window]
- VBA 코드를 작성하는 창
- 엑셀에 VBA를 사용한다는 것은 여기에 코드를 작성한다는 의미
코드 창이 화면에 보이지 않는 경우
- 상단의 메뉴-보기- 코드를 선택합니다.
- 또는, 단축키 F7 키
참고
굳이 사용하지 않아도 되는 영어 명칭을 덧붙이는 이유는,
앞으로 VBA를 사용하게 되면, 영어 문서를 참조하는 경우가 많아
미리 알아두면 좋다.
이 밖에도 Ctrl + G를 눌러 활성화하는 "직접 실행 창" [Immediate Window]
, 메뉴-보기-지역 창 [Locals Window] 등
다양한 윈도우들이 있지만, 우선은 기본적인 것만 보도록 하자.
2. VBA 코드 알아보기
2.1 우리의 처음 VBA 코드
"모듈"에서 Module1을 보면, 아까 우리가 작성했던
코드가 아래와 같이 나온다.
Sub 매크로1()
'
' 매크로1 매크로
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2").Select
End Sub
위 코드는 아까 우리가 녹화했던 매크로를
엑셀 프로그램에서 자동으로 VBA코드로 만들어 놓은 것이다.
우리가 매크로를 실행하면,
위의 Sub부분부터 End Sub까지의 내용에 따라
엑셀은 작업을 수행하게 된다.
따라서, 기본적으로 Visual Editor에서 Sub/End Sub으로 작성된 코드는, 엑셀 매크로 기능과 같은 것이다.
고로, 우리는 매크로를 만들 때
① 매크로 기록으로 녹화하거나
② VBA를 활용하여 Sub/End Sub으로 만들 수 있다.
2.2 VBA 코드 분석
우리는 매크로 프로그램을 녹화할 때,
1) 셀 A1을 클릭
2) 1 타이핑
3) Enter 입력
하여 매크로를 만들었다.
이 동작들은 각각 VBA 코드로 아래와 같이 프로그램에서 자동으로 기록되었다.
사용자 동작 | Code | 풀이 |
셀 A1을 클릭 | Range("A1").Select | 범위 참조 A1을 선택(Select)하라 |
1 타이핑 | ActiveCell.FormulaR1C1 = "1" | 현재 활성화된 셀(ActiveCell.FormularR1C1)은(=) "1"이다 |
Enter 입력 | Range("A2").Select | 범위 참조 A2를 선택(Select)하라. |
2.3 VBA 코드 변환
위의 코드를 좀 더 이해하기 위해
작성된 코드를 조금 변화시켜 보겠다.
Sub 매크로1()
'
' 매크로1 매크로
'
' A1을 선택
Range("A1").Select
' 1을 입력
ActiveCell.FormulaR1C1 = 1
' A2를 선택
Range("A2").Select
' 2를 입력
ActiveCell.FormulaR1C1 = 2
' A3을 선택
Range("A3").Select
' 3을 입력
ActiveCell.FormulaR1C1 = 3
' A4을 선택
Range("A4").Select
End Sub
중간중간에 한글로 써진 "매크로1 매크로" 등은 앞에 '를 붙여
코멘트(comment)또는 주석 처리한다고 하여, 설명을 돕는 글을 적는다.
컴퓨터가 해당 줄은 실행하지 않고 무시하기 때문에
프로그램에 영향을 주지 않는다.
2.4 변환된 코드 실행
아래와 같이 변환된 코드를 다시 실행해보자.
다만 이번에는, "매크로" 버튼을 클릭해 실행하는 것이 아닌
위쪽의 노란색으로 마커가 칠해진 버튼을 클릭하여 실행해보자.
(또는 F5 눌러서 실행)
한 줄씩 실행
코드 라인이 한줄한줄 잘 넘어가는지 확인을 위해서
또는 어떤 라인에서 문제가 생기는지 알기 위해서
한줄씩 실행해야 하는 경우가 있다.
이 경우 F8을 눌러가면서 실행을 한다.
이왕 코드를 만들었으니, 한줄씩 실행해보자.
방법은 Sub과 End Sub 사이 아무 코드라인이나 한번 클릭 한 뒤,
F8을 눌러보면 된다.
한 줄씩 실행하게 되면 노란색으로 현재 어디를 실행하려고 하는지
프로그램에서 표시를 해준다.
이때 유념할 점은, 노랑색으로 칠해진 라인은
현재 실행된 부분이 아니라, 이제 실행할 라인을 표시한다는 점이다.
------------------
오늘은 여기서 마치고 이 파일을 가지고 다음 시간에도
계속 새로운 기능들을 알아가 보자.
-------------------------------------
질문 / 답변
질문 답변은 아래의 이미지 클릭으로 링크 부탁드립니다.
오피스 사용 관련하여 질문/답변을 누적하여,
나중에 찾는 사람이 사이트 내 검색하여 찾기 쉽게끔 사이트를 만들고 있습니다.
감사합니다.
-------------------------------------
'VBA (Visual BASIC Applicaton) > 기초' 카테고리의 다른 글
3. 엑셀 매크로(Excel Macro)란 무엇인가, 엑셀 매크로 만드는 법, 상대 참조 매크로 (0) | 2020.03.04 |
---|---|
2. VBA 개발자 탭, 엑셀 개발 도구 활성화 (0) | 2020.03.03 |
1. VBA(Visual BASIC for Application)가 뭔가요? (0) | 2020.03.03 |