-
[Excel] 반복 업무 엑셀로 편리하게 작업 자동화 VBA 입문엑셀 2026. 6. 2. 10:13반응형

매달 같은 형식의 보고서를 만들고, 같은 작업을 반복한다면 — 사실 그건 엑셀이 해야 할 일이다. 매크로와 VBA를 쓰면 클릭 한 번으로 30분짜리 반복 작업을 3초에 끝낼 수 있다.
'코딩'이라는 말이 무섭게 느껴질 수 있는데, 오늘 다루는 건 그런 수준이 아니다. 매크로 기록부터 시작해서 실무에서 바로 쓸 수 있는 VBA 코드까지, 처음부터 차근차근 짚어본다.1 매크로란? — 반복 작업을 녹화하는 기능 매크로(Macro)는 엑셀에서 수행하는 동작을 '녹화'해서 나중에 재생하는 기능이다. 영상 녹화처럼 내가 하는 클릭, 입력, 서식 변경을 기록해두었다가 버튼 하나로 똑같이 반복해준다.
▸ 매크로 vs VBA
구분 매크로 기록 VBA 직접 작성 방식 동작을 녹화해서 자동 생성 코드를 직접 입력 난이도 쉬움 — 코딩 불필요 중간 — 기본 문법 필요 유연성 제한적 (기록한 그대로만) 조건·반복·변수 등 자유롭게 수정 VBA 편집기에서 수정 가능 직접 편집 적합한 상황 단순 반복 작업 자동화 조건 분기·루프가 필요한 작업 ▸ 매크로 사용 전 설정
기본적으로 매크로 기능이 비활성화되어 있다. 먼저 개발 도구 탭을 활성화해야 한다.
파일 → 옵션 → 리본 사용자 지정 → '개발 도구' 체크 → 확인
이제 상단에 '개발 도구' 탭이 생긴다. 매크로 관련 기능이 여기에 모여 있다.
💡 실무 팁
매크로가 포함된 파일은 반드시 .xlsm 형식으로 저장해야 한다. 일반 .xlsx로 저장하면 매크로가 삭제된다는 경고가 뜬다. 처음 저장할 때 '매크로 사용 통합 문서(*.xlsm)'를 선택하자.2 매크로 기록 — 클릭만으로 자동화 만들기 매크로 기록은 진짜로 쉽다. 내가 하는 동작을 그대로 따라 하는 녹화기다. 한 번만 직접 해보면 바로 감이 온다.
▸ Step 1 — 매크로 기록 시작
① 개발 도구 탭 → 매크로 기록 클릭
② 매크로 이름 입력 (영문, 띄어쓰기 없이) — 예: FormatReport
③ 바로 가기 키 지정 (선택) — 예: Ctrl + Shift + F
④ 저장 위치: '현재 통합 문서' 선택 → 확인
→ 이제부터 하는 모든 동작이 녹화된다
▸ Step 2 — 자동화할 작업 수행
녹화 중에 원하는 작업을 직접 한다. 예시: 보고서 서식 자동화
• 1행 선택 → 배경색 진한 파랑 → 글자 흰색 → 굵게
• 열 너비 자동 맞춤 (전체 선택 후 더블클릭)
• 합계 행 추가 → SUM 수식 입력
• 테두리 적용
▸ Step 3 — 기록 중지 & 실행
개발 도구 탭 → 기록 중지
이제 다른 시트에서 Ctrl + Shift + F 를 누르면 같은 서식이 자동 적용된다.
💡 중요 주의사항
매크로 기록 중에는 실수도 그대로 녹화된다. 기록 전에 할 작업 순서를 머릿속으로 한 번 정리하고 시작하자. 실수했다면 기록 중지 후 다시 기록하는 게 깔끔하다.
절대 참조 vs 상대 참조: 기본은 절대 참조(항상 같은 셀). 상대 참조로 기록하려면 개발 도구 → 상대 참조 사용을 먼저 켜야 한다.3 VBA 기초 — 코드로 더 강력하게 매크로 기록으로 만든 코드는 VBA 편집기에서 바로 볼 수 있다. VBA(Visual Basic for Applications)는 엑셀에 내장된 프로그래밍 언어다. 기본 구조만 알면 매크로 코드를 수정하거나 직접 짤 수 있다.
▸ VBA 편집기 열기
단축키: Alt + F11
왼쪽 프로젝트 창에서 '모듈' 클릭 → 기록된 매크로 코드가 보임
▸ VBA 기본 구조
Sub 매크로이름()
' 이 줄은 주석입니다 (실행 안 됨)
' 여기에 코드 작성
End Sub▸ 자주 쓰는 VBA 문법 5가지
① 셀에 값 입력
Range("A1").Value = "안녕하세요"
Cells(1, 1).Value = 100 ' Cells(행, 열)② 변수 선언 & 사용
Dim 이름 As String
Dim 금액 As Long
이름 = "김민준"
금액 = 1500000
Range("A1").Value = 이름③ 조건문 — If ~ Then
If Range("B2").Value >= 60 Then
Range("C2").Value = "합격"
Else
Range("C2").Value = "불합격"
End If④ 반복문 — For ~ Next
Dim i As Integer
For i = 2 To 100 ' 2행부터 100행까지
If Cells(i, 2).Value >= 60 Then
Cells(i, 3).Value = "합격"
Else
Cells(i, 3).Value = "불합격"
End If
Next i⑤ 메시지 박스 — 완료 알림
MsgBox "작업이 완료되었습니다!"
' 확인/취소 선택창: MsgBox "계속할까요?", vbYesNo💡 실무 팁
VBA에서 F5는 코드 실행, F8은 한 줄씩 실행(디버깅)이다. 코드가 예상대로 안 돌아갈 때 F8로 한 줄씩 실행해보면 어디서 틀렸는지 바로 보인다.
에러가 나면 당황하지 말고 노란색으로 표시된 줄을 확인하자. 거기가 문제가 생긴 지점이다.4 실전 VBA 코드 모음 — 바로 복사해서 쓰는 자동화 개념을 익혔으면 실제로 쓸 수 있는 코드가 필요하다. 아래 코드들은 실무에서 가장 자주 쓰이는 자동화 패턴이다. 그대로 복사해서 VBA 편집기에 붙여넣고 약간만 수정하면 바로 쓸 수 있다.
▸ ① 빈 행 자동 삭제
데이터에서 빈 행을 일일이 찾아 지우는 작업을 자동화한다.
Sub 빈행삭제()
Dim i As Long
Dim 마지막행 As Long
마지막행 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 마지막행 To 1 Step -1 ' 아래서부터 올라와야 안전
If Cells(i, 1).Value = "" Then
Rows(i).Delete
End If
Next i
MsgBox "빈 행 삭제 완료!"
End Sub▸ ② 시트별 데이터 자동 분리
A열의 부서명을 기준으로 각 부서별 시트를 자동으로 만들고 데이터를 분리한다.
Sub 시트별분리()
Dim 셀 As Range
Dim 부서명 As String
For Each 셀 In Range("A2:A" & Cells(Rows.Count,1).End(xlUp).Row)
부서명 = 셀.Value
' 시트가 없으면 새로 만들기
If Not SheetExists(부서명) Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = 부서명
End If
' 해당 행을 해당 시트에 복사
셀.EntireRow.Copy Sheets(부서명).Cells(Rows.Count,1).End(xlUp).Offset(1)
Next 셀
MsgBox "시트 분리 완료!"
End Sub▸ ③ PDF 자동 저장
현재 시트를 지정한 경로에 PDF로 자동 저장한다. 월말 보고서 저장에 유용하다.
Sub PDF저장()
Dim 파일명 As String
파일명 = "C:\보고서\" & Format(Now, "YYYY-MM") & "_월간보고서.pdf"
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=파일명, _
Quality:=xlQualityStandard
MsgBox 파일명 & " 저장 완료!"
End Sub▸ ④ 특정 조건 셀 색칠하기
B열 값이 목표(C열)보다 낮은 행을 자동으로 빨간색으로 강조한다.
Sub 미달행강조()
Dim i As Long
Dim 마지막행 As Long
마지막행 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To 마지막행
If Cells(i, 2).Value < Cells(i, 3).Value Then
Rows(i).Interior.Color = RGB(255, 200, 200) ' 연한 빨강
Else
Rows(i).Interior.ColorIndex = xlNone ' 색 제거
End If
Next i
End Sub💡 실무 팁
빈 행 삭제 코드에서 'Step -1' (아래서부터 위로 반복)은 매우 중요하다. 위에서 아래로 삭제하면 행 번호가 밀려서 일부 빈 행을 건너뛰는 버그가 생긴다.
For ~ Next 대신 Do While ~ Loop도 있다. 마지막 행을 모를 때 빈 셀이 나올 때까지 반복하는 패턴으로 자주 쓴다.5 버튼에 매크로 연결 — 클릭 한 번으로 실행 매크로를 단축키 대신 시트 위의 버튼에 연결해두면 팀원도 쉽게 쓸 수 있다. 직접 만든 자동화 도구처럼 보여서 보고서 완성도도 올라간다.
▸ 도형으로 버튼 만들기
① 삽입 탭 → 도형 → 원하는 모양 선택 (모서리가 둥근 사각형 추천)
② 도형 위에 텍스트 입력 — 예: '보고서 서식 적용', '빈 행 삭제'
③ 도형 우클릭 → 매크로 지정 → 연결할 매크로 선택 → 확인
④ 이제 도형을 클릭하면 매크로가 실행됨
▸ 양식 컨트롤 버튼 사용
개발 도구 탭 → 삽입 → 양식 컨트롤 → 단추 선택
시트에 드래그하면 자동으로 '매크로 지정' 창이 뜬다. 연결할 매크로 선택 후 버튼 텍스트를 원하는 이름으로 변경하면 완성이다.
💡 실무 팁
버튼 위치를 고정하려면 도형 우클릭 → 크기 및 속성 → '셀에 따라 이동하지 않음' 선택. 행을 추가/삭제해도 버튼이 제자리에 있다.
동료에게 파일을 전달할 때는 '매크로 포함 통합 문서(.xlsm)' 형식으로 보내고, 처음 열 때 보안 경고에서 '콘텐츠 사용'을 눌러야 매크로가 작동한다고 미리 안내해두자.6 매크로 보안 & 주의사항 매크로는 강력하지만 잘못 쓰면 데이터를 망가뜨릴 수 있다. 몇 가지 기본 안전 수칙을 알아두자.
주의사항 이유 해결책 항상 백업 후 실행 매크로 실행은 Ctrl+Z로 되돌릴 수 없음 실행 전 파일 복사본 저장 출처 불명 매크로 실행 금지 악성 코드가 포함될 수 있음 신뢰할 수 있는 파일만 콘텐츠 사용 중요 데이터는 잠금 실수로 덮어쓸 수 있음 셀 잠금 + 시트 보호 먼저 코드에 주석 달기 나중에 내가 봐도 모를 수 있음 ' 로 시작하는 주석 꼭 추가 💡 매크로 보안 설정
파일 → 옵션 → 보안 센터 → 보안 센터 설정 → 매크로 설정에서 '알림을 표시하고 디지털 서명된 매크로만 사용'으로 설정하는 것이 가장 안전하다.
'모든 매크로 사용'은 악성 파일에 취약하므로 권장하지 않는다.오늘 배운 내용 정리
단계 내용 바로 써볼 것 매크로 기록 동작 녹화 → 재생 보고서 서식 자동화 VBA 기초 변수·조건·반복 문법 Alt+F11 → 코드 확인 실전 코드 빈 행 삭제, 시트 분리, PDF 저장 복사 후 수정해서 사용 버튼 연결 도형·양식 컨트롤에 매크로 연결 팀원도 쓸 수 있는 버튼 만들기 보안 백업 필수, 출처 불명 파일 주의 항상 복사본 저장 후 실행 매크로와 VBA는 처음엔 낯설지만, 딱 하나만 만들어보면 '이거 왜 이제 알았지?'라는 생각이 든다. 오늘 배운 것 중 가장 자주 할 것 같은 반복 작업 하나를 골라서 매크로 기록부터 시작해보자.
반응형'엑셀' 카테고리의 다른 글
[Excel] 엑셀 심화 함수 XLOOKUP · LAMBDA · 동적배열 (0) 2026.06.02 [Excel] 공유 엑셀 꼭 알아야 할 설정 방법 (1) 2026.06.02 [Excel] 엑셀 차트 & 그래프 200% 활용 방법 (0) 2026.05.28 [Excel] 엑셀 피벗 테이블 완전 정복 (0) 2026.05.28 [Excel] 업무속도 올리는 엑셀 실전 단축키 & 활용 모음 (0) 2026.05.28