Excel VBA 및 사용자 정의 함수 시작하기
Excel의 강력한 기능 중 하나인 VBA(Visual Basic for Applications)를 활용하면 반복적인 작업을 자동화하고, 사용자 정의 함수를 만들어 Excel의 기본 기능을 확장할 수 있습니다. 이 글에서는 VBA 사용을 위한 기본적인 환경 설정부터 코드 작성, 그리고 여러 파일에서 공통으로 사용할 수 있는 매크로 및 함수 관리 방법까지 알아보겠습니다.
개발 도구 탭 활성화하기
VBA 편집기 및 관련 도구에 접근하려면 먼저 Excel 리본 메뉴에 개발 도구 탭을 표시해야 합니다.
- Excel 상단 메뉴에서 파일 탭을 클릭합니다.
- 왼쪽 메뉴 하단의 옵션을 선택합니다.
- 'Excel 옵션' 창에서 리본 사용자 지정을 클릭합니다.
- 오른쪽 '리본 메뉴 사용자 지정' 목록에서 개발 도구 항목을 찾아 체크박스를 선택하고 확인을 누릅니다.
이제 Excel 리본 메뉴에 개발 도구 탭이 나타납니다.
VBA 편집기(Visual Basic Editor) 열기
VBA 코드를 작성하고 편집하는 주된 공간은 VBA 편집기입니다.
- 메뉴 이용: 활성화된 개발 도구 탭에서 가장 왼쪽에 있는 Visual Basic 아이콘을 클릭합니다.
- 단축키 이용: 키보드에서
Alt
+F11
키를 동시에 누릅니다.
모듈 추가하기
VBA 코드는 일반적으로 모듈(Module)이라는 단위로 작성 및 관리됩니다.
- VBA 편집기가 열리면, 왼쪽 '프로젝트 탐색기' 창에서 코드를 추가하고자 하는 Excel 파일 프로젝트(예:
VBAProject (통합 문서1)
)를 선택합니다. - 상단 메뉴에서 삽입(I) > **모듈(M)**을 클릭합니다.
- 프로젝트 탐색기 창의 '모듈' 폴더 아래에 새로운 모듈(예:
Module1
)이 추가된 것을 확인할 수 있습니다. 이 모듈의 코드 창에 VBA 코드를 작성하게 됩니다.
프로시저(Procedure) 및 함수(Function) 추가하기
모듈에는 특정 작업을 수행하는 **프로시저(Subroutine)**와 값을 계산하여 반환하는 **사용자 정의 함수(User-Defined Function, UDF)**를 작성할 수 있습니다.
-
프로시저 (Sub): 특정 작업을 자동화하거나 일련의 명령을 실행합니다. 반환 값이 없습니다.
Sub HelloWorld() MsgBox "안녕하세요, VBA!" End Sub
위 프로시저는
HelloWorld
라는 이름으로, 실행 시 "안녕하세요, VBA!"라는 메시지 상자를 표시합니다. -
사용자 정의 함수 (UDF): 특정 계산을 수행하고 그 결과를 반환합니다. Excel 워크시트의 기본 함수처럼 셀에서 호출하여 사용할 수 있습니다.
Function VAT(금액 As Double) As Double Const 세율 As Double = 0.1 VAT = 금액 * 세율 End Function
위
VAT
함수는 입력된금액
(숫자)에 대해 10%의 부가가치세를 계산하여 반환합니다. 워크시트 셀에=VAT(A1)
과 같이 사용할 수 있습니다. 함수를 선언할 때As 반환타입
(예:As Double
,As String
,As Long
)을 명시하여 함수가 어떤 종류의 데이터를 반환할지 지정하는 것이 좋습니다.
이 예시에서는 소수점까지 포함한 Double을 사용하였으나, 실 사용에서는 조금 더 엄밀한 정의가 필요할 것입니다.
개인용 매크로 통합 문서(PERSONAL.XLSB) 활용하기
작성한 매크로나 사용자 정의 함수를 특정 파일에만 종속시키지 않고, 현재 컴퓨터에서 실행되는 모든 Excel 파일에서 사용하고 싶다면 개인용 매크로 통합 문서(PERSONAL.XLSB
)를 활용할 수 있습니다.
-
PERSONAL.XLSB
생성 (없는 경우):- 개발 도구 탭에서 매크로 기록을 클릭합니다.
- '매크로 기록' 대화 상자에서 '매크로 저장 위치'를 개인용 매크로 통합 문서로 선택하고 확인을 누릅니다.
- 간단한 작업(예: 임의의 셀 선택)을 수행한 후, 개발 도구 탭에서 기록 중지를 클릭합니다.
- Excel을 종료할 때
PERSONAL.XLSB
파일의 변경 내용을 저장하라는 메시지가 나타나면 저장을 선택합니다. 이 과정을 통해PERSONAL.XLSB
파일이 사용자 프로필의 특정 폴더에 생성됩니다.
-
PERSONAL.XLSB
에 코드 작성 및 사용:PERSONAL.XLSB
파일이 생성된 이후에는 VBA 편집기를 열면 프로젝트 탐색기에VBAProject (PERSONAL.XLSB)
항목이 나타납니다.- 여기에 위에서 설명한 방법으로 모듈을 추가하고 원하는 프로시저나 사용자 정의 함수를 작성합니다.
- 이렇게
PERSONAL.XLSB
에 저장된 코드는 Excel이 시작될 때마다 자동으로 로드되어, 어떤 Excel 파일을 열든 해당 매크로나 함수를 바로 사용할 수 있습니다.PERSONAL.XLSB
파일 자체는 보통 숨겨진 상태로 열리므로 작업에 방해가 되지 않습니다.
파일 저장 형식 및 공유 시 유의사항
VBA 코드(매크로, 사용자 정의 함수)를 포함한 Excel 파일은 특별한 파일 형식으로 저장해야 합니다.
.xlsm
(Excel Macro-Enabled Workbook): 매크로 사용 통합 문서입니다. VBA 코드를 저장하는 가장 일반적인 형식입니다..xlsb
(Excel Binary Workbook): 이진 파일 형식으로, 일반 텍스트 기반인.xlsm
에 비해 파일 크기가 작고 열거나 저장하는 속도가 빠를 수 있습니다. VBA 코드를 포함할 수 있습니다.
일반적인 .xlsx
형식으로 저장하면 작성한 VBA 코드가 모두 삭제되므로 주의해야 합니다.
파일 공유 시 고려사항:
카카오톡과 같은 일부 메신저 서비스나 특정 이메일 시스템에서는 보안상의 이유로 .xlsm
확장자를 가진 파일의 전송을 차단하거나 경고를 표시하는 경우가 있습니다.
이러한 경우, 파일을 .xlsb
형식으로 저장하여 공유하면 보안 제한을 우회하여 원활하게 파일을 전달할 수 있는 가능성이 높습니다. .xlsb
형식 역시 VBA 코드를 완벽하게 지원하므로 기능상의 손실은 없습니다.