ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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는 처음엔 낯설지만, 딱 하나만 만들어보면 '이거 왜 이제 알았지?'라는 생각이 든다. 오늘 배운 것 중 가장 자주 할 것 같은 반복 작업 하나를 골라서 매크로 기록부터 시작해보자.

     

    반응형
Designed by Tistory.