엑셀 VBA #1. Excel VBA 소개 및 할 수 있는 일
Lucy Archive
Lucy 2023
2020. 12. 5. 02:12

Excel VBA 소개

어느날 회사에서 하는 업무를 되돌아보니, 단순한 반복작업이 너무나 많다는 것을 느꼇습니다. 이 단순 반복 작업들을 클릭 한 번으로 자동화하면 중요한 일에만 몰두 할 수 있는 환경을 만들 수 있을 것이라 생각했습니다. 그 방법을 찾는 중에 알게 되고 업무에 적용 한 것 중의 하나가 Excel VBA입니다. 간단한 작업이라도 하루에 1분이상 반복적으로 하는 작업을 모두 자동화하기 시작하기 시작하면, 진짜 나만의 시간, 나를 위한 시간을 가질 수 있습니다.

이 포스트에서는 제가 자동화를 하기 위해 사용하는 도구 중의 하나인 Excel VBA를 소개합니다.


엑셀 VBA가 필요한 사람

아래에 하나라도 해당되지만 아직도 Excel VBA를 사용하지 않으시는 분들은, 이 블로그가 아니더라도 Excel VBA를 한번 해보시기를 추천드립니다. 프로그래밍을 해보지 않았어도, Excel VBA를 하면서 소소하게 알아가시면 됩니다. 

  • 엑셀을 자주 사용하는 직장인
  • 단순 반복적인 업무가 많으신 분
  • 나만의 엑셀 함수를 만들고 싶으신 분
  • 나만의 Add-in 추가기능을 만들고 싶으신 분
  • 관련된 엑셀 파일을 바로 열고 싶으신 분
  • 대량의 데이터를 일괄 수정 및 추출하고 싶으신 분
  • DB로 사용하는 엑셀 파일에서 쉽게 참조하고 싶으신 분

엑셀 VBA란?

Excel은 Microsoft에서 개발해서 판매하는 스프레드시트 응용 프로그램입니다. 응용 프로그램은 특수한 목적을 가지고 개발된 프로그램입니다. 사진 편집 프로그램은 사진 편집과 관련된 기능이 있듯이, 엑셀은 데이터를 추적, 분석, 계산을 할 수 있는 프로그램입니다. (여담이지만..) 데이터 베이스 저장하는 용도로 사용하지만, 데이터 베이스 저장을 목적으로 만들어진 프로그램은 Access입니다.

응용 프로그램 사용자는 개발자가 만들어 놓은 기능만 사용할 수 있습니다. 응용 프로그램을 쓰다 보면 추가 기능을 추가하거나, 반복 적인 작업을 자동화하고 싶은 경우가 있습니다. Microsoft는 VBA란 개발환경을 대부분의 MS-Office 응용 프로그램에 내장하였습니다. 직장인이 자주 사용하는 Excel, Powerpoint, Word, Outlook 등의 모든 프로그램은 VBA사용이 가능합니다. VBA는 Visual Basic for Application의 약어입니다. Visual Basic은 프로그래밍 언어이고, for Application은 응용 프로그램을 위한 뜻입니다. 정리하면 Excel VBA란 Excel에 내가 원하는 기능을 Visual Basic이란 프로그래밍 언어로 추가할 수 있도록 해주는 도구라고 생각하시면 됩니다.

 

엑셀 VBA를 추천하는 이유

엑셀 VBA 개발환경이 간단하고, 뛰어난 확장성이 있습니다.

  • 엑셀 프로그램만으로 개발환경이 끝
    • 엑셀 사용하는 경우 추가 비용이 없음
    • 새로운 툴을 설치할 필요가 없음
  • 엑셀 VBA에서 엑셀의 기능 뿐만 아니라, 오피스 제품군의 제어도 가능
    • ex) 엑셀에 저장된 데이터를 파워포인트 보고서로 만들기
  • 윈도 API 사용 가능
    • ex) PC의 시리얼 통신으로 데이터 받기 등
    • ex) 메모장을 열어서 데이터 쓰기 등
    • ex) 웹사이트 크롤링 등
  • 내가 제작한 VBA 배포 가능

엑셀 VBA의 장/단점

위에서 말한 내용과 겹치기는 하지만, 엑셀 VBA의 장단점은 아래와 같습니다.

장점

  • 간단한 개발환경 : 엑셀만 있으면 끝
    • 엑셀 프로그램 내에 VBA 기존 탑재 : 추가 비용 없음
    • 다른 개발 툴 설치 불 필요
  • 쉬운 프로그래밍
    • 엑셀의 메크로 녹화 기능을 사용하면 실시간의 동작을 VBA 코드로 볼 수 있음
    • 대소문자 구분이 없음
  • 제작된 기능을 다양한 방법으로 실행
    • 엑셀 상단 리본 메뉴 추가 가능
    • 단축키 사용 가능
    • 버튼 제작 후 사용 가능
  • 다른 오피스 제품군과 연동 가능

단점

  • VBA 코드 실행시 이전 상태로 가기 위해 Ctrl+Z 사용이 불가능
  • 보안에 취약
    • 엑셀의 보안 기능은 사용자의 메크로 사용 여부를 선택하는 것으로 끝
  • 기본적으로 엑셀 안에서 코드 실행이 가능
  • 배포하기 까다로움
  • 협업으로 코드 작성 할 수 없음
  • 엑셀에서 제공되는 Editor만 사용 가능

엑셀 VBA로 내가 자동화 했던 작업 리스트

저는 엑셀 VBA를 사용해서 아래와 같은 소소한 엑셀 자동화 프로그램을 사용하였습니다. 대단한 것은 없고, 소소한 것들입니다.

  • 자주 사용하는 프로젝트 관리, 예산 등등 파일을 리본 메뉴에 즐겨 찾기 추가
  • 설계 사양 입력하면 견적서 자동 생성
  • 제품 사양, 옵션을 입력하면 재료비 자동 작성
  • 부족한 부품명과 수량만 입력하면 자동으로 부품 구매업체별 발주 양식 자동 생성
  • 예산 관리 파일 첫 번째 시트에 예산 현황 대시보드 생성
  • 표 자동 양식 만들기
  • 파일명 일괄 변경 프로그램
  • BOM 자동 생성
  • 현재 데이터 테이블의 오류를 메모장에 열어서 보여주기
  • 기타 소소한 자동화들...

마무리

글을 적는 재주가 없어서, 설명이 부족하지만 사무직으로 엑셀 작업을 앞으로도 많이 하실 분은 한번 꼭 해보시길 추천드립니다. 

주의사항

5분 소요되는 작업을 자동화하기 위해 업무에 집중도 못하고 5시간이 걸릴 수도 있습니다..ㅎㅎ

관련포스트

👉 바로 써먹는 Excel VBA 강좌 리스트 목록 전체 보기