엑셀에는 함수를 보완하기 위한 사용자 정의함수가 있고, 반복적인 작업을 자동으로 해주는 매크로가 있습니다. 똑같이 개발도구아래 Visual Basic에서 만들지만, 확장자도 사용자 정의함수는 xlam(과거 xla), 매크로는 xlsm(과거는 xls로 엑셀 파일 확장자와 구분이 없었음)입니다. 그런데, 개인용 매크로 통합문서는 같은 매크로이지만 확장자는 xlsb(과거는 xls로 엑셀 파일 확장자와 구분이 없었음)로 다릅니다.
그럼 personal.xlsb를 만드는 방법을 설명하겠습니다.
1. 개발도구 - 매크로 기록을 선택합니다.
2. 매크로 저장 위치가 '현재 통합 문서'로 되어 있는데, 오른쪽 꺽기, 콤보 박스 버튼을 눌러 '개인용 통합 매크로 문서'를 선택하고 확인 버튼을 누릅니다.
3. 이제 매크로 기록을 종료하기 위해 '기록 중지'를 누릅니다.
4. 이 상태에서 개발도구 - Visual Baisc을 누르면 프로젝트 창에 다 보이지는 않지만 PERSONAL.XLSB 가 생성된 것을 알 수 있습니다.
5. 다시 PERSONALXLSB 왼쪽의 + 부분을 누르면 모듈이 보이고, 모듈을 더블 클릭하면 Module1이 보이는데, Module1을 더블 클릭하면
아래 화면과 같이 Module1에 sub 매크로1()이 있고, 내용이 초록색으로 표시되는 것을 알 수 있습니다.
6. 이 상태로 그대로 두고 매크로 기록을 하면 모두 '개인용 매크로 통합 문서'로 저장되므로 다시 '현재 통합 문서'로 변경해야 합니다. 방법은 저장 위치를 '개인용 매크로 통합 문서'로 지정할 때와 동일합니다.
7. Visual Basic 모드에서 엑셀로 돌아가기 위해 엑셀 아이콘을 클릭하거나 Alt + F11키를 누릅니다. 그리고 나서, '매크로 기록'을 누른 다음 저장 위치를 '현재 통합 문서'로 바꾼 다음 확인 버튼을 누르고, '기록 중지' 버튼을 누르면 됩니다.
8. personal.xlsb 파일 내보내기
이제 자주 사용하는 매크로는 personal.xlsb에 저장하면 되며, 혹시 PC가 포맷이 되면 personal.xlsb가 없어지므로 그 내용을 D드라이브에 저장하는 것이 좋은데 그 절차는 아래와 같습니다.
가. 개발도구 - Visual Baisc을 클릭하거나 Alt + F11키를 누릅니다.
나. personal.xlsb 아래 Module1을 더블클릭합니다.
다. 파일 - 파일 내보내기 메뉴를 클릭합니다.
그러면 아래와 같이 파일명이 Module1.bas라는 식으로나오는데, 자신이 알기 쉬운 파일명과 폴더명을 지정해서 저장합니다. 아니면 USB에 담던지 구글 드라이브 등에 저장해놔도 좋겠지요.
9. 다른 매크로 통합문서에 있는 모듈(sub 파일명으로 구성된 프로그램을 모듈이라고 합니다)를 복사해서 personal.xlsb에 붙여 넣으면 엑셀을 열 때마다 열리므로 편리하게 사용할 수 있습니다.
아래를 보면 빈셀윗셀값으로채우기란 sub 프로시져가 열려 있는데 이 부분을 모두 복사해서
personal.xlsb 아래의 Module1을 더블 클릭한 후 붙여 넣고 저장 아이콘을 누르면 됩니다.
10. personal.xlsb 파일 가져오기
가. 위 파일을 원하는 장소에 저장합니다.
나. 파일 - 파일 가져오기 메뉴를 누릅니다.
다. 저장된 폴더의 personal.bas 를 클릭하고 열기 버튼을 누르거나, 파일명을 더블 클릭합니다.
라. 그러면 아래와 같이 Module이 추가됩니다. 기존에 Module1이 있어 Module11이라고 추가되었습니다. 통상적으로는 Module2로 추가되어야 하는데, 그동안 많이 만들고 지워서 흔적이 남아 있는 듯 합니다.
이제 디스켓 모양을 눌러 저장합니다.
저장버튼을 누르지 않으면 엑셀을 닫을 때 personal.xlsb를 저장할 것이냐고 물으므로 이 때 '저장'버튼을 눌러도 됩니다.
'EXCEL - VBA' 카테고리의 다른 글
엑셀의 유용함, 사용자 정의함수(2) (0) | 2020.07.28 |
---|---|
엑셀의 유용함, 사용자 정의함수(1) (0) | 2020.07.27 |
엑셀 날짜 관련 함수 총정리(5) (VBA 날짜관련 함수 - DateAdd, DateDiff, DatePart 등) (0) | 2020.07.20 |
윗셀과 같은 값 지우기(2) - while 문 (0) | 2020.07.10 |
윗셀과 같은 값 지우기(1) - for 문 (0) | 2020.07.09 |