저번 시간에 엑셀 매크로에 대해서 살펴봤습니다.
이번엔 엑셀에 녹아있는 VBA(비주얼베이직)에 대해서 살펴보겠습니다.
엑셀 사용하는데 이런 것도 알아야해? 라고 생각하실 수도 있겠으나 제 기준으로 볼 때
엑셀 작업에 필요한 시간을 많이 줄여줄 수 있는 기능이라고 생각합니다.
하지만 프로그램 언어를 사용하는 기능이다 보니 사용법이 고급자 기준입니다.
비주얼 베이직의 기본 문법정도는 아셔야 사용하실 수 있습니다.
이 건 따로 공부하셔야 합니다. 기본적인 문법 구조라도 아셔야 검색으로 해결 가능하다고 생각되네요.
기본 준비물
- 개발 도구 리본메뉴
- 비주얼베이직의 기초적인 문법 개념
그럼과 같이 개발도구 리본메뉴가 도출되어 있어야합니다.
개발도구 메뉴를 나오게 하는 방법은 저번 포스팅에도 언급해서 링크를 걸어드리겠습니다.
VBA 편집창 (VBE)을 여는 방법
- 저는 단축키를 주로 씁니다. Alt + F11
- 또다른 방법은 위 그림의 빨간테두리에 해당하는 코드 보기버튼을 클릭하면 됩니다.
Alt + F11
뭔가 보기에 생소한 창이 하나 뜹니다. 다른 기능들은 차차 배워나가시고
오늘은 간단하고 쉬운 몇가지 예제로 사용법을 익히기로 하겠습니다.
예제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는
여기 예제를 모두 따라해보셔야 감이 잡힙니다. 보기만 한다고 자기 것이 되지는 않습니다.
간단한 예제를 이해를 동반해서 직접 실행해 봐야만 합니다.
댓글