VBA 01 — 지금도 VBA를 배울 이유와 첫 매크로 만들기

VBA를 시작할 때 가장 먼저 할 일은 긴 문법책을 읽는 것이 아닙니다.
짧은 코드를 직접 실행해 보고, 엑셀에서 무엇이 달라지는지 확인하는 편이 이해하기 쉽습니다.

이번 글에서는 연습 파일을 준비하고 첫 매크로를 실행합니다.
코드는 셀 두 개에 문장을 입력하고 서식을 바꾸는 정도로만 구성했습니다.

VBA는 오래된 언어지만 데스크톱 Excel 안에서 반복 작업을 빠르게 줄이기에는 아직 쓸모가 있습니다.
데이터가 많거나 여러 시스템을 연결해야 한다면 Python, Power Query, Power Automate가 더 알맞을 수 있습니다.
반대로 매일 10분씩 반복하는 엑셀 작업처럼 범위와 순서가 분명한 일은 VBA로 시작하기 좋습니다.

시작하기 전에

이 글은 Windows용 데스크톱 Excel을 기준으로 합니다.
웹용 Excel에서는 일반적인 VBA 매크로를 작성하거나 실행할 수 없습니다.

매크로가 들어가는 파일은 .xlsx가 아니라 Excel 매크로 사용 통합 문서(.xlsm)로 저장해야 합니다.

  1. Excel에서 새 통합 문서를 엽니다.
  2. 파일 → 다른 이름으로 저장을 선택합니다.
  3. 파일 형식을 Excel 매크로 사용 통합 문서(*.xlsm)로 선택합니다.
  4. VBA_연습.xlsm처럼 알아보기 쉬운 이름으로 저장합니다.

중요한 파일을 바로 열어 연습하지 않는 것이 좋습니다.
매크로가 실행한 작업은 실행 취소로 되돌리지 못하는 경우가 많으므로 복사본을 사용합니다.

개발 도구 탭 표시하기

VBA 메뉴는 기본 화면에서 보이지 않을 수 있습니다.
다음 순서로 개발 도구 탭을 표시합니다.

  1. 파일 → 옵션을 엽니다.
  2. 리본 사용자 지정을 선택합니다.
  3. 오른쪽 기본 탭 목록에서 개발 도구를 체크합니다.
  4. 확인을 누릅니다.

Excel 상단 리본 메뉴에 개발 도구 탭이 나타나면 준비가 끝났습니다.

VBA 편집기 열기

개발 도구 → Visual Basic을 누릅니다.
단축키 Alt + F11을 사용해도 됩니다.

VBA 편집기(VBE)가 열리면 왼쪽 프로젝트 탐색기에서 현재 통합 문서를 확인하고 모듈을 추가합니다.

  1. 삽입(Insert) → 모듈(Module)을 선택합니다.
  2. 오른쪽에 나타난 빈 코드 창을 클릭합니다.
  3. 아래 코드를 그대로 입력합니다.
Option Explicit

Sub 첫_매크로()
    Range("A1").Value = "VBA, 반갑습니다!"
    Range("A2").Value = "첫 번째 자동화가 실행되었습니다."
    Range("A1:A2").Font.Bold = True
    Range("A1:A2").Columns.AutoFit
End Sub

매크로 실행하기

코드 안에 커서를 두고 F5를 누릅니다.
Excel 화면에서 실행하려면 개발 도구 → 매크로로 이동한 뒤 첫_매크로를 선택하고 실행을 누릅니다.

실행 결과는 네 가지입니다.

  • A1 셀에 VBA, 반갑습니다!가 입력됩니다.
  • A2 셀에 첫 번째 자동화가 실행되었습니다.가 입력됩니다.
  • A1과 A2의 글자가 굵게 표시됩니다.
  • A열 너비가 입력한 문장에 맞게 조정됩니다.

결과가 보이지 않는다면 코드가 들어 있는 통합 문서의 시트를 보고 있는지 먼저 확인합니다.
매크로는 현재 활성화된 시트에 작업하기 때문입니다.

코드를 한 줄씩 읽기

처음부터 문법을 모두 외울 필요는 없습니다.
각 줄이 엑셀에서 어떤 일을 하는지만 연결해서 보면 됩니다.

오타를 확인하는 설정

Option Explicit는 변수를 사용하기 전에 선언하도록 강제합니다.
변수 이름을 잘못 입력했을 때 오류를 찾는 데 도움이 됩니다.

매크로의 시작과 끝

Sub 첫_매크로()에서 매크로가 시작되고 End Sub에서 끝납니다.
두 줄 사이에 엑셀이 실행할 작업을 순서대로 적습니다.

매크로 이름에는 공백을 넣을 수 없습니다.
예제의 첫_매크로에 밑줄을 사용한 이유입니다.

셀에 값 입력하기

Range("A1")은 현재 시트의 A1 셀을 가리킵니다.
뒤에 붙은 .Value는 그 셀의 값입니다.

Range("A1").Value = "VBA, 반갑습니다!"는 A1 셀의 값을 해당 문장으로 바꾸라는 명령입니다.
A2에 입력하는 다음 줄도 같은 구조입니다.

글꼴을 굵게 표시하기

Range("A1:A2")는 A1부터 A2까지의 범위를 뜻합니다.
.Font.Bold = True는 그 범위의 글꼴을 굵게 표시합니다.

True는 설정을 켜고 False는 끕니다.

열 너비 자동으로 맞추기

.Columns.AutoFit은 선택한 범위가 들어 있는 열의 너비를 내용에 맞춥니다.
긴 문장이 셀 안에서 잘려 보일 때 자주 사용하는 명령입니다.

값을 바꿔 다시 실행하기

코드를 조금 바꾼 뒤 다시 실행하면 각 부분의 역할이 더 분명해집니다.

  1. A1B3로 바꿉니다.
  2. 따옴표 안의 문장을 내 이름이나 자주 쓰는 업무 문구로 바꿉니다.
  3. Font.BoldTrueFalse로 바꿉니다.

한 번에 하나만 바꾸고 실행하는 편이 좋습니다.
무엇을 바꿨을 때 결과가 달라졌는지 바로 확인할 수 있습니다.

매크로를 실행할 때 주의할 점

인터넷이나 이메일로 받은 매크로 파일은 출처와 코드를 확인하기 전까지 실행하지 않습니다.
VBA는 셀 값뿐 아니라 파일을 수정하거나 외부 프로그램을 실행할 수도 있습니다.

  • 출처를 모르는 파일에서 콘텐츠 사용을 무심코 누르지 않습니다.
  • 중요한 파일은 복사본을 만들어 테스트합니다.
  • 처음 보는 코드는 실행 전에 어떤 작업을 하는지 확인합니다.
  • 회사 보안 정책이 있다면 그 정책을 우선합니다.

이번 매크로는 짧지만 VBA의 기본 구조는 모두 들어 있습니다.
코드가 시작되고, 셀을 지정하고, 값을 넣고, 서식을 바꾼 뒤 끝납니다.

다음 글에서는 For문으로 여러 셀을 반복해서 처리해 봅니다.
한 셀에 하던 작업을 여러 행으로 넓히는 방법입니다.

댓글 남기기

이메일은 공개되지 않습니다.