본문 바로가기
IT와생활

엑셀 VBA 강좌 - 쉽게 배워보자 VBA

by 즈칸루하 2015. 7. 31.

 

저번 시간에 엑셀 매크로에 대해서 살펴봤습니다.

이번엔 엑셀에 녹아있는 VBA(비주얼베이직)에 대해서 살펴보겠습니다.

엑셀 사용하는데 이런 것도 알아야해? 라고 생각하실 수도 있겠으나 제 기준으로 볼 때

엑셀 작업에 필요한 시간을 많이 줄여줄 수 있는 기능이라고 생각합니다.

 

하지만 프로그램 언어를 사용하는 기능이다 보니 사용법이 고급자 기준입니다.

비주얼 베이직의 기본 문법정도는 아셔야 사용하실 수 있습니다.

이 건 따로 공부하셔야 합니다. 기본적인 문법 구조라도 아셔야 검색으로 해결 가능하다고 생각되네요.

 

엑셀 vba

 

기본 준비물

- 개발 도구 리본메뉴

- 비주얼베이직의 기초적인 문법 개념

 

그럼과 같이 개발도구 리본메뉴가 도출되어 있어야합니다.

개발도구 메뉴를 나오게 하는 방법은 저번 포스팅에도 언급해서 링크를 걸어드리겠습니다.

 

 

VBA 편집창 (VBE)을 여는 방법

- 저는 단축키를 주로 씁니다. Alt + F11
- 또다른 방법은 위 그림의 빨간테두리에 해당하는 코드 보기버튼을 클릭하면 됩니다.

 

Alt + F11

vbe

 

뭔가 보기에 생소한 창이 하나 뜹니다. 다른 기능들은 차차 배워나가시고

오늘은 간단하고 쉬운 몇가지 예제로 사용법을 익히기로 하겠습니다.

 

예제1 - 특정 셀구간의 모든 문자 대문자로 만들기

 

예제로 사용하기 위해 과일과 물고기 이름을 몇가지 영어로 나열해 보았습니다.

그리고 물고기의 이름을 모두 대문자로 만들어보겠습니다.

 

Sub Uppercase()
   For Each x In Range("B1:B8")
      x.Value = UCase(x.value)
   Next
End Sub

 

위 코드를 엑셀 vba 에디터(vbe)에 타이핑 또는 복붙하시고...

 

실행 (F5)을 하시면

물고기 이름 부분의 영어가 모두 대문자로 변경되었습니다.

 

For Each 구문(반복)과 Ucase함수(대문자로)가 사용된 간단한 비베문법입니다.

 

이번엔 반대로 해보겠습니다.

예제2- 특정 셀구간의 모든 문자 소문자로 만들기

 

 

Sub Lowercase()
   For Each x In Range("B1:B5")
      x.Value = LCase(x.Value)
   Next
End Sub

 

방법은 똑 같습니다.

코드 적용 > F5 실행

 

위의 코드와 다름이 없지만 UCase()함수가 LCase()함수로 변경되었을 뿐입니다.

LCase()함수는 소문자로 변경시키는 함수입니다.

 

이번에는 조금 고난이도(?)의 코드를 적용해보겠습니다.

예제3- 특정 셀구간의 첫글자만 대문자로 만들기

이번엔 과일이름을 변경해보겠습니다.

간단한 엑셀 vba 코드입니다.

 

Sub Proper_Case()
   For Each x In Range("A1:A8")
      x.Value = Application.Proper(x.Value)
   Next
End Sub

 

 

 

어떤가요? 따라 할 만한가요. 엑셀 VBA는

여기 예제를 모두 따라해보셔야 감이 잡힙니다. 보기만 한다고 자기 것이 되지는 않습니다.

간단한 예제를 이해를 동반해서 직접 실행해 봐야만 합니다.

 

댓글