본문 바로가기
업무 자동화

엑셀 보고서 자동화 끝판왕, PDF 저장 후 이메일 발송 원클릭 매크로

by jungdabnote 2026. 2. 24.
반응형

직장인들에게 가장 번거로운 일 중 하나는 완성된 보고서를 PDF로 변환하고, 아웃룩을 열어 파일을 첨부한 뒤 메일을 보내는 과정입니다. 한두 번은 괜찮지만 보고 대상이 많아지면 단순 작업에 너무 많은 시간을 뺏기게 됩니다. 오늘은 클릭 한 번으로 현재 시트를 PDF로 만들고 메일 작성창까지 띄워주는 자동화 매크로를 소개합니다.

1. 보고서 자동화의 핵심 개념

보고서 자동화란 단순히 데이터를 계산하는 것을 넘어 최종 결과물을 전달하는 과정까지 기계에 맡기는 것을 의미합니다. 엑셀의 VBA 기능을 사용하면 아웃룩과 같은 외부 프로그램과 통신할 수 있습니다. 이를 통해 수동으로 파일을 저장하고 첨부하는 과정을 생략할 수 있어 실수를 줄이고 작업 속도를 수십 배 높일 수 있습니다.

2. PDF 변환 및 이메일 발송 통합 코드

이 코드는 현재 활성화된 시트를 PDF 파일로 임시 저장한 뒤 아웃룩 메일에 자동으로 첨부합니다.

Alt + F11을 눌러 모듈을 추가하고 아래 코드를 복사해서 넣어보세요.

Sub SaveAsPDFAndEmail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim FilePath As String
    Dim FileName As String
    
    ' 1. PDF 파일 저장 경로와 이름 설정
    FilePath = Environ("USERPROFILE") & "\Desktop\"
    FileName = "주간보고서_" & Format(Date, "yyyymmdd") & ".pdf"
    
    ' 2. 현재 시트를 PDF로 저장
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FilePath & FileName
    
    ' 3. 아웃룩 실행 및 메일 작성
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
    On Error Resume Next
    With OutMail
        .To = "receiver@example.com" ' 받는 사람 주소 입력
        .Subject = "보고서 송부의 건" ' 메일 제목
        .Body = "안녕하세요. 요청하신 보고서를 첨부와 같이 송부합니다." ' 메일 본문
        .Attachments.Add FilePath & FileName ' PDF 파일 첨부
        .Display ' 메일창을 띄웁니다 (바로 보내려면 .Send 사용)
    End With
    On Error GoTo 0
    
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

3. 실무 활용 팁

이 기능의 진정한 가치는 확장성에 있습니다.

첫 번째로 파일 이름 자동화입니다. 코드 내의 FileName 변수 설정을 조금만 바꾸면 셀에 적힌 업체명이나 날짜를 가져와 파일 이름을 자동으로 지정할 수 있습니다. 수십 명의 거래처에 각각 다른 이름의 보고서를 보낼 때 매우 유용합니다.

두 번째로 대량 발송 응용입니다. 만약 메일 주소 리스트가 엑셀 시트에 정리되어 있다면 반복문을 활용해 클릭 한 번으로 수백 명에게 각각 맞춤형 PDF 보고서를 발송할 수도 있습니다. 이는 원가 관리나 정산 업무를 담당하는 분들에게 강력한 무기가 됩니다.

4. 마치며

도구의 목적은 인간의 시간을 아껴주는 데 있습니다. 오늘 배운 매크로를 여러분의 업무에 적용해 보세요. 남들이 수동으로 파일을 변환하고 메일을 작성할 때 여러분은 클릭 한 번으로 업무를 끝내고 더 중요한 의사결정에 집중할 수 있습니다.

반응형