본문 바로가기

프로그래밍/VBA

VBA?

VBA?


VBA가 뭐지? 하는 사람들 참 많을 것 같지만,

VBA는 OA 어플리케이션의 최고봉 MS Office에 포함되어 있는 기능이다.


Word, Excel, Outlook  등 매일 매일 업무에서 접하는 Office 툴.

아무리 고가의 어플리케이션이지만 꼭 필요하기에 회사에서는 아낌없이 지원을 해준다.


MS Office는 수십년간 MS의 최대 밥줄 중 하나로,

역사상 최고의 소프트웨어 중 하나였었다고 생각한다. 지금은 뭐 아닐 수도 있지만.



각설하고.

MS Office는 다양한 업무 환경에서 최적의 업무 퍼포먼스를 끌어올려주는 범용 소프트웨어이다.


문제는 범.용.

대다수의 업무환경에서서 쉽게 사용할 수 있다는 것이 장점이지만, 범용에는 한계가 있다.

이런 범용기능에 만족하고 불편함이 없다면 그냥 쓰면 된다!


그러나 특수한 상황에서는 이 범용기능에 대해 부족함이 느껴질 수 있다는 것!

MS가 참 앞서간게, 이에 대응하여 자동화/커스터마이징 기능을 제공했다는 것!

이 커스터마이징의 핵심이 바로 VBA이다.


낮은 수준의 커스터마이징은 매크로이다.

매크로(메뉴 > 도구 > 매크로)도 모르는 사람이 많을지 모르겠지만,

사용자가 지정한 동작이나 기능을 자동으로 수행할 수 있도록 해준다. 반복잡업을 간단히 처리할 수 있다.


VBA(Visual Basic for Application)는 매크로보다 강력한 커스터마이징 기능을 제공한다.

강력하다는 것은? VB로 프로그래밍을 하여 원하는 기능을 만들어 사용할 수 있다는 것!


VB(Visual Basic)가 한창 유행할 때는 개발자라면 누구나 VB를 다룰 수 있었고,

(지금은 일부분야를 제외하고는 거의 자바가 대체하여 사라져가는 언어ㅜ)

익히기 쉽고 응용하기 쉬운 언어였다. 물론 자료도 많았다. 지금은 찾아보기 힘들지만..

뭐 언어는 모두 일맥상통한다고 생각하는 나로써는 어떤 프로그래밍 언어든 상관없다.

환경에 맞는 언어로 작업하면 그만이다. 작업할 수 있는 환경이 제공된다는 것이 중요하다.




VBA로 할 수 있는 것들.

 - 메일 발송시 제목입력여부를 확인하여 발송 중기

 - 메일 발송시 수신자 확인

 - 엑셀에 작성한 팀원들의 업무일지를 통합문서로 작성

 - DB와 연동하여 데이터로 보고서 작성

 - 특정시간에 자동 출력


간단하게는 자동화와 오류검사기능, 좀 더 강력하게는 데이터 처리를 할 수 있다.

으어어어ㅓㅓㅓ 좋다:)


나만좋나? Excel기능도 다 모르는데 무슨 VBA야 생각할 수도 있겠다ㅋ

이런쪽으로는 뇌가 처음부터 수신거부를 하는 분들도 많이 봤기 때문에 뭐..

이과와 문과와 예체능계는 다른 인종이라 생각함.





내가 처음 VBA를 접한 것은 2006년도이다.

OO설비에서 축적된 데이터를 일보/월보/연보를 자동으로 작성하는 소프트웨어를 작성하는 업무를 했었는데,

MFC로 Excel OLE를 사용해서 일보/월보/연보는 만들 수 있었지만, 문제는 종합운영일지를 작성하는 것이었다.

문서양식도 워낙 복잡해서 MFC에서 Excel을 컨트롤하는 것에는 한계가 있었다.

결국은 대안이 Excel VBA를 사용하여 Excel에서 처리하도록한 것 이었다.

Oracel DB와 Excel을 연동하여 데이터를 가져와서 가공하고

양식에 맞추어 데이터를 채우고 정해진 시간에 출력하는 기능을 갖도록 했다.


VBA을 통해 할 수 있는 일이 무궁무진하다는 것을 깨달은 기억이다.




- VBA는 국내에는 워낙자료가 없어서 기억도 되살리고 하나둘 정리를 해볼까해서 포스팅합니다.

당장 쓸만한 예제 찾는 중..




'프로그래밍 > VBA' 카테고리의 다른 글

메일보낼때 제목 미입력 확인하기  (2) 2013.05.10