본문 바로가기

Excel VBA/VBA 배우기

01 엄마도 따라 할 수 있는 Excel VBA - 시작

728x90

관련글

2012/12/10 - [Excel VBA/VBA 배우기] - 01 엄마도 따라 할 수 있는 Excel VBA - 시작

2012/12/10 - [Excel VBA/VBA 배우기] - 02 엄마도 따라 할 수 있는 Excel VBA - Range 사용하기

2012/12/28 - [Excel VBA/VBA 배우기] - 03 엄마도 따라 할 수 있는 Excel VBA - 셀 선택하기, 값 가져오기, 바꾸기

2013/01/08 - [Excel VBA/VBA 배우기] - 04 엄마도 따라 할 수 있는 Excel VBA - for문 if문 사용하기

2013/01/09 - [Excel VBA/VBA 배우기] - 05 엄마도 따라 할 수 있는 Excel VBA - 글자 연결하기 &

2013/01/09 - [Excel VBA/VBA 배우기] - 06 엄마도 따라 할 수 있는 Excel VBA - 변수 선언하기

2013/01/09 - [Excel VBA/VBA 배우기] - 07 엄마도 따라 할 수 있는 Excel VBA - 메세지 창 띄우기

2013/01/09 - [Excel VBA/VBA 배우기] - 08 엄마도 따라 할 수 있는 Excel VBA - 반복문 배우기(For Next문)

2013/01/11 - [Excel VBA/VBA 배우기] - 09 엄마도 따라 할 수 있는 Excel VBA - IF문(조건문) 배우기

2013/01/14 - [Excel VBA/VBA 배우기] - 10 엄마도 따라 할 수 있는 Excel VBA - 셀 주소 알아내기

2013/01/18 - [Excel VBA/VBA 배우기] - 12 엄마도 따라 할 수 있는 Excel VBA - VBA에서 날짜 사용하기

 

Excel VBA를 이용해서 그린 곡선. VBA를 이용하면 이렇게 다양한 작업을 쉽게 할 수 있습니다.

 

들어가는 말

Excel에 무궁무진한 기능이 많다고들 합니다. 그 이유는 엑셀에 VBA가 들어 있기 때문에 기능을 구현해서 쓸 수 있어서 저런 말이 나온 것 같습니다.

VBA는 프로그래밍 언어입니다.
프로그래밍이라고 겁먹을 것 없습니다. 엄마도 따라할 수 있게 화면 하나하나 설명해 드릴테니까요.

저는 문과 출신에 프로그래밍 경험이 없었습니다. 하지만 Excel VBA를 통해 프로그래밍에 입문해서 지금은 개발자로 일하고 있습니다.

Excel VBA는 가장 접근하기 쉬운 프로그래밍 언어가 아닐까 합니다. 엑셀만 설치 되어 있으면 바로 프로그래밍을 해볼 수 있기 때문입니다.

 

먼저 VBA 스크립트 작성법을 따라해보면서 배워보겠습니다.

엑셀 화면입니다. 버젼은 어떤 버젼이라도 상관 없습니다.

 

상단 메뉴에서 '개발자 도구 - Visual Basic' 혹은 단축키 'Alt + F11'로 들어가면 아래와 같은 화면이 나옵니다. 상단 메뉴에 '개발자 도구'가 없을 수도 있는데 그냥 'Alt + F11'누르고 들어가면 됩니다.

 

 

아래와 같이 'Microsoft Excel 개체'에서 마우스 오른쪽 클릭 '삽입 - 모듈'을 선택합니다.

 

 

좌측에 '모듈'폴더가 생기고 'Module1'이라는 모듈이 생긴 것을 볼 수 있습니다. '모듈'폴더 아래 있는 'Module1'이라는 파일에 내가 하고 싶은 기능을 입력하는 것을 VBA프로그래밍 이라고 합니다.

VBA를 작성할 수 있는 이 화면을 VBE(Visual Basic Editor)라고 합니다.

 

728x90

이제 VBA를 이용하여 Sheet1의 'A1'셀에 'hello world'를 출력 해보겠습니다. 일단 문자 출력을 해보면 '감'이 온답니다. 문자 출력을 하고 '더하기 기능'도 만들고 '빼기 기능'도 만들다 보면 나중에는 원하는 복잡한 기능을 만들고 있는 자신을 발견할 수 있을것입니다.

 

위와 같이 입력해봅시다. 아래의 코드를 복사붙혀넣기 하면 됩니다.

Sub 헬로월드()
    'Sheet1의 "A1"에 "hello world"를 출력 하시오.
    Sheet1.Range("A1").Value = "hello world"
End Sub

코드를 잠깐 설명 드리면

Sheet1의 "A1"에 hello world라고 출력하라는 코드 입니다.

 

다시 엑셀 화면으로 돌아와서 방금 작성한 매크로를 실행해 보겠습니다.

'개발자 도구 - 매크로'를 선택하거나 Alt + F8을 누릅니다.

아까 작성했던 '헬로월드'라는 매크로가 나옵니다.

 

위 코드에서 Sub 헬로월드()라고 해주었기 때문에 여기에서 '헬로월드'라는 이름이 보이는 것입니다. 앞에서 Sub 헬로월드() 대신 Sub 바이월드()라고 했다면 '바이월드'라고 나왔을 것입니다.

 

우측에 '실행'버튼을 눌러보겠습니다.

 

'hello world'가 보이시나요? 보이신다면 잘 만드신겁니다.

앞으로는 'hello world'가 나오는 기능 대신에 위와 같이 곡선을 그리는 기능 등 여러분들이 원하는 각종 기능들을 만들어 보겠습니다.

 

소스코드를 조금 더 상세히 분석 해보겠습니다. 아래 코드입니다.

Sub 헬로월드()
    'Sheet1의 "A1"에 "hello world"를 출력 하시오.
    Sheets1.Range("A1").Value = "hello world"
End Sub

 

서브루틴(Subroutine)

VBE에서 특정 기능을 수행하는 하는 코드의 묶음을 서브루틴(Subroutine)이라고 합니다.

Sub 헬로월드()

End Sub

시작은 'Sub 펑션이름() '으로 시작하고 'End Sub'로 끝납니다.

 

이제 예제를 한번 해보겠습니다.

 

주석

'Sheet1의 "A1"에 "hello world"를 출력 하시오.

문장 앞에 ' 를 붙이면 '주석'입니다. VBE가 실행 될 때 저 줄은 실행을 하지 않고 건너띕니다. 사용자가 나중에 알아보기 편하라고 적는 것이고 특정 기능이 없는 것을 '주석'이라고 합니다.

 

Sheet1.Range("A1").Value = "hello world"

Sheet1의 "A1"열에 "hello world"라고 입력하라는 뜻입니다.

 

예제1

그러면 "A1"대신에 "A1:A100"이라고 입력하면 어떻게 될까요?

Sub 헬로월드()
    'Sheet1의 "A1"에 "hello world"를 출력 하시오.
    Sheet1.Range("A1:A100").Value = "hello world"
End Sub

소스코드에서 F5를 눌러서 실행 해보겠습니다.

 

아래와 같이 A1:A100열에 모두 "hello world"가 들어갑니다.

 

예제3

이렇게 바꿔봅시다. Sheet1.Range("A1:A100").Value = "good bye world"

 

실행하면 아래와 같이 나옵니다.

 

감이 좀 오시나요? "" 따옴표 안에 있는 내용을 수정하면 됩니다. ""따옴표가 빠지면 에러가 납니다.

 

end.

 

 

다음 글 : Range 사용하기

krksap.tistory.com/14

 

02 엄마도 따라 할 수 있는 Excel VBA - Range 사용하기

이전 글 2012/12/10 - [Excel VBA] - 01 엄마도 따라 할 수 있는 Excel VBA - 시작 Range Class에 대해 알아볼게요. Range Class는 Excel VBA에서 가장 많이 사용하는 Class중 하나에요. (Class란? 속성과 기능으..

krksap.tistory.com

 

728x90
블로그 주인장입니다. 원하시는 정보는 얻으셨나요? 이 포스트에서 추가로 필요한 정보가 있으시면 여기에 남겨주세요.