<엑셀VBA 입문 6강> VBA 저장하는 법

<엑셀VBA 입문 6강> VBA 저장하는 법

오늘은 쉽지만 무척 중요한 내용이다. VBA 저장하는 법이다.

“VBA 코드는 다 짰어. 그런데 이거 어떻게 저장하지?”라는 생각이 들 때가 됐다.

엑셀은 대표적으로 2가지 확장자를 제공한다. xls와 xlsx가 그것이다. xls는 엑셀 97부터 2003 버전까지 사용하는 확장자다. 이후 버전은 xlsx로 저장된다. 말인즉슨 우리가 엑셀 파일이라고 부르는 것은 xls와 xlsx, 둘 중 하나라고 봐도 무방하다.

<엑셀은 다양한 확장자를 제공한다. 그 중에서도 xls와 xlsx가 대표격이다>

열심히 VBA(매크로)를 작성하고 엑셀을 저장하려면 아래와 같은 메시지가 뜬다.

“다음 기능은 매크로 제외 통합 문서에 저장할 수 없습니다.

– VB 프로젝트

이러한 기능이 포함된 파일을 저장하려면 [아니요]를 클릭한 다음 [파일 형식] 목록에서 매크로 사용 파일 형식을 선택하십시오.

매크로 제외 통합 문서로 계속 저장하려면 [예]를 클릭하십시오.”

<VB 프로젝트를 저장하기 위해선 매크로 사용 파일 형식을 선택하라는 메시지가 뜬다>

살펴보면 확장자에는 xls와 xlsx만 있는게 아니라, xlsm이라는게 있다. “Excel 매크로 사용 통합 문서(*.xlsm)”이라고 한다. 이 파일 형식으로 선택하면 엑셀과 매크로를 파일 하나로 저장할 수 있다. 결론부터 밝히자면 xlsm 확장자 1번, xlsx 확장자로 1번, 총 2번 저장하기를 권한다.

개인 백업용으로 USB에 넣거나, 자기 자신에게 메일을 보내는 차원이라면 xlsm 파일로만 저장해도 상관없다. 작업중인 파일도 물론 xlsm로 저장하는게 편하다. 하지만 남에게 파일을 전송하는 경우 xlsx파일로 저장해서 보내기를 권장한다. xlsm 파일은 엑셀 버전에 따라 오픈할 때 경고 메시지가 뜨기도 하고, 메일 첨부시에 바이러스성 파일로 분류되기도 한다. VBA라고 표현하든 매크로라고 표현하든, 기본적으로 프로그램이다. 받아보는 사람 입장에서는 불안하게 느낄 수 있다.

그럼에도 불구하고 일단 xlsm파일로 저장해두라는 것은 자칫 실수로 애써 만든 VBA 코드를 날려버릴 수 있기 때문이다. 일단 매크로 포함 xlsm 파일로 저장하고, xlsx파일로 다른 이름으로 저장하여 업무에 활용하면 된다.

기타 알아두면 좋은 팁으로는 매크로/VBA만 따로 저장하는 방법이 있다. 바로 VBA 모듈 저장이다.

* VBA 모듈 저장하는 방법

1. Alt + F11 키를 눌러 VBA 윈도우를 띄운다.

2. 생산한 모듈(ex: Module1) 파일 위에서 마우스 우클릭하고 [파일 내보내기]를 선택한다. (혹은 상단 메뉴의 [파일] – [파일 내보내기] 메뉴를 선택한다.)

3. 적당한 위치에 저장한다. (확장자 bas 파일이 저장된다.)

<VBA 모듈을 저장하는 법. 내보내기 하면 세이브하고, 가져오기로 로드할 수 있다>

VBA 모듈을 불러오는 방법도 쉽게 알 수 있다.

* VBA 모듈 불러오는 방법

1. Alt + F11 키를 눌러 VBA 윈도우를 띄운다.

2. [모듈] 폴더 위에서 마우스 우클릭하고 [파일 가져오기]를 선택한다. (혹은 상단 메뉴의 [파일] – [파일 가져오기] 메뉴를 선택한다.)

3. 미리 저장해둔 확장자 bas 파일을 선택한다.

VBA 모듈을 저장하고 불러오는게 별거 아닌 기술 같지만 상당히 유용하다. 예를 들어 특정 함수에 단축키를 지정해뒀다면(대표적으로 VBA 매크로일 경우) 모듈을 가져다 쓴 엑셀에서도 동일한 단축키로 함수를 실행시킬 수 있다.

만약 수식입력줄에 사용할 수 있게 여러가지 함수를 만들어놓은 상태라면, 다음에 새 엑셀 파일을 작성할 때에도 편리하게 재사용할 수 있다. 유용한 함수들을 여러개 모아둔 것을 한 단어로 라이브러리라고 하는데, VBA 작성에 있어서도 어느 정도 라이브러리를 만들어놓으면(함수를 여러개 개발해서 잘 정리해놓으면) 시간이 지날수록 편하게 개발할 수 있다.

개인적으로는 수식입력줄에 사용 가능한 VBA 함수 만들기는 크게 선호하지 않는다. xlsx 파일로 전송했을 때 모듈까지 동봉해서 제공하지 않는한 수식이 깨질 위험이 있다. 그래서 단축키가 걸린 매크로(ex: Ctrl + K)가 상당히 유용하다. 단축키가 걸린 매크로는 대부분의 경우가 셀에 수식을 넣는게 아니라 값 자체를 바꾸는 식으로 만들어지기 때문에, 모듈이 없어져서 데이터가 깨지지 않을까 염려하지 않아도 된다.

이어지는 글 <엑셀VBA 입문 7강> VBA 기초 명령어 : https://blog.naver.com/bb_/221253767009

​이어지는 글 <엑셀VBA 입문 8강> 셀 내용 가져오기 : https://blog.naver.com/bb_/221260814900
이어지는 글 <엑셀VBA 입문 9강> 특정 단어의 개수를 세는 방법 : https://blog.naver.com/bb_/221266831714