엑셀 중급_VBA 와 매크로 (12)

이번 포스팅부터 엑셀 VBA 편집기에서 조금씩 VBA를 수정하는 것을 소개 하겠습니다. VBA를 처음부터 코딩 하는 것보다 이미 자동으로 만들어진 코드를 해석하는 것이 접근도 훨씬 쉽고 또 체계적으로 코딩을 하는데 큰 도움이 됩니다. 워드나 파워포인트의 매크로를 잘못 기록하게 되면 처음부터 다시 하는 편이 좋습니다. 프로그램의 특성상 VBA를 반드시 써야 할 경우가 많이 없고 또 VBA에디터를 어느 정도 다루어야 하기 때문입니다. 그러나 엑셀의 경우는 VBA편집을 어느 정도만 할 줄 알아도 크게 유용하게 활용할 곳이 많습니다. 그 첫 시간으로 가장 기본 중의 기본 VBA 매크로의 이름을 수정해 보도록 하겠습니다.

12연습파일.xlsm

12연습파일_완성본.xlsm

  1. 프로시저(Procedure)

    프로시저(Procedure)의 직역은 절차 입니다. 엑셀 VBA에서 프로시저(Procedure)는 매크로 실행 단위의 묶음 이라고 생각 하시면 됩니다. 하나의 프로시저(Procedure)는 단 몇 줄의 코드를 포함 할 수도, 수 백 줄의 코드를 포함 할 수도 있습니다. 여러분이 매크로를 기록할 때 매크로가 여러 개의 동작을 수행 할 수도, 아니면 단 몇 가지의 간단한 동작만을 수행 하도록 할 수도 있습니다. 만약 몇 개의 동작만 수행하도록 매크로를 기록 한다면 VBA 프로시저(Procedure) 에는 단 몇 줄의 코드만 포함될 것이고 많은 동작을 수행하도록 한다면 많은 줄의 코드가 하나의 프로시저(Procedure)에 포함될 것입니다. 또 프로시저의 시작은 항상 Sub 내용() 으로 시작하고 하나의 프로시저가 끝나면 End Sub으로 끝나게 됩니다. 

     

    연습 파일의 보기 탭에서 매크로를 클릭 하면 현재 이용 가능한 매크로는 PERSONAL.XLSB에 저장된 값으로 저장 매크로 하나와 개인 파일에 저장된 매크로 2개가 있습니다.

     

     

    Alt + F11을 눌러서 VBA편집기로 오시면 값으로 저장 매크로의 코드는 단 두 줄인 것을 확인 할 수 있습니다.

     

     

    또 모듈 2에 저장된 밑줄긋고음영셀병합 매크로는 여러 줄의 코드로 구성 되어 있습니다. 이처럼 매크로에서 행하는 매서드(Method)가 많으면 코드의 줄 수가 많아 집니다.

     

    여기서 모듈의 개념을 다시 짚어 봅시다. 모듈은 엑셀 VBA의 코드가 저장 되는 공간 이며 VBA코드의 폴더라고 생각하면 됩니다. 우리가 여러 개의 파일을 같은 성격을 같은 것끼리 분류해서 여러 개의 폴더에 정리할 수도, 또는 귀찮아서 하나의 폴더에 정리 할 수 있듯이 VBA의 모듈은 VBA매크로를 같은 성격을 갖는 것끼리 하나로 묶어서 정리 하도록 도와 주고 또 모듈끼리 연동도 가능 합니다. 엑셀 매크로는 기록할 때 자동으로 새로운 모듈을 만들어서 Module1, Module2….. 로 번호를 매깁니다. 나중에 내가 구분하기 쉽게 모듈 이름을 적고 매크로를 분류하는 것은 내가 파일을 정리하고 폴더를 분류하는 것과 비슷하다고 생각 하시면 됩니다.

     

  2. 매크로의 이름은 프로시저(Procedure)의 Sub문의 선언문

    워드나 파워포인트 엑셀 모두 정해 진 매크로의 이름을 바꾸려면 반드시 VBA에디터를 통해서 해야 합니다. VBA 매크로의 최소 구성 단위인 프로시저(Procedure)의 선언문 Sub 내용() 에서 내용 부분이 매크로의 이름이 되고 이 부분을 수정하면 매크로의 이름이 바뀌게 됩니다. 매크로의 이름은 한글도 사용할 수 있지만 띄어쓰기와 특수 문자의 사용이 불가능 합니다. 그리고 나중에 코드 확장을 할 때 각 파일간의 호환 등을 생각하면 매크로의 이름도 항상 알파벳으로 짓는 것을 추천 드립니다.

     

    기존의 모듈 1에 저장된 값으로 저장 매크로를 SaveValue라는 영문 이름으로 변경 했습니다.

     

     

    이제 다시 보기의 매크로를 클릭 하시면 매크로의 이름이 값으로저장 에서 SaveValue로 바뀐 것이 확인 가능 합니다.

     

    여기서 필자가 따르는 프로시저(Procedure)의 이름은 프로그래밍 코딩에서 가장 널리 쓰이는 Hungarian 스타일 입니다. 어떤 스타일을 쓸지는 프로그래머의 판단 이지만 항상 일관된 원칙을 정해서 거기에 따르는 것은 대단히 중요합니다. Hungarian스타일도 두 가지로 구분 되는데 필자처럼 단어의 첫 글자를 대문자로 하고 띄어 쓰기를 생략하는 것과 또 띄어 쓰기를 하는 공간에 _를 입력해 보기 쉽게 구분해 주는 것 입니다. _를 쓰는 이유는 모든 코딩에 _는 특수 문자로 취급되지 않고 그대로 사용할 수 있어서 모든 변수에 일관되게 사용이 가능합니다.

     

    매크로 이름을 수정 하려다가 VBA에디터가 나타나면 당황 하셨죠? 알고 보면 아무것도 아니니 겁먹지 말고 이제 자신 있게 Alt+F11을 눌러 매크로 정리를 합시다.


+ Recent posts