엑셀에서 보고서나 양식을 작성한 후, 버튼만 클릭하면 자동으로 PDF 파일로 저장되는 기능이 있다면 정말 편리하겠죠? 특히 반복적으로 출력하거나, 메일 첨부용 보고서를 만드는 업무에서는 한 번의 클릭으로 PDF 자동 저장 기능이 실무 효율을 크게 높여줍니다.
오늘은 VBA를 사용해서 버튼 클릭 → 현재 시트를 PDF로 저장하는 방법을 완전 자동화로 알려드릴게요.
⸻
✅ 1. 기본 VBA 코드: 현재 시트를 PDF로 저장
Sub ExportSheetAsPDF()
Dim ws As Worksheet
Dim filePath As String
Set ws = ThisWorkbook.Sheets("업무보고") ' 저장할 시트 이름 수정
' 저장 경로와 파일 이름 설정
filePath = ThisWorkbook.Path & "\" & ws.Name & "_" & Format(Date, "yyyy-mm-dd") & ".pdf"
' PDF로 저장
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
MsgBox "PDF 저장 완료: " & filePath, vbInformation
End Sub
⸻
✅ 2. 코드 설명
• ThisWorkbook.Path → 현재 엑셀 파일이 저장된 폴더에 PDF 생성
• ws.Name → 시트 이름을 PDF 파일명에 포함
• Format(Date, "yyyy-mm-dd") → 오늘 날짜 자동 포함
• 저장 경로는 필요시 절대경로(예: "C:\Users\사용자\Documents\...")로 수정 가능
⸻
✅ 3. 버튼 만들기 및 매크로 연결
1. [개발 도구] → [삽입] → 양식 컨트롤 버튼 클릭
2. 시트 위에 버튼 생성
3. 매크로 지정 창에서 ExportSheetAsPDF 선택
4. 버튼 텍스트: “PDF로 저장”, “보고서 출력” 등 원하는 문구로 변경
⸻
✅ 4. 전체 통합문서(PDF로 모든 시트 저장) 기능도 가능
모든 시트를 한 번에 PDF로 저장하려면 아래 코드로 확장할 수 있어요:
Sub ExportWorkbookAsPDF()
Dim filePath As String
filePath = ThisWorkbook.Path & "\전체보고서_" & Format(Date, "yyyy-mm-dd") & ".pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath
MsgBox "전체 시트를 PDF로 저장했습니다.", vbInformation
End Sub
⸻
✅ 5. 특정 범위만 PDF로 저장하고 싶다면?
ws.Range("A1:F30").ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath
• 특정 범위만 저장하는 방식도 가능하며, 출력 범위 설정된 보고서 양식에 적합합니다.
⸻
요약 정리
목적 코드 방식 결과
현재 시트 PDF 저장 .ExportAsFixedFormat 자동 파일 생성
파일명에 날짜 포함 Format(Date, "yyyy-mm-dd") 예: 업무보고_2025-07-22.pdf
전체 시트 저장 ThisWorkbook.ExportAsFixedFormat 통합 PDF 생성
범위만 저장 ws.Range(...).ExportAsFixedFormat 맞춤 출력 가능
⸻
이 기능은
📄 보고서 출력,
📄 결재용 문서 생성,
📄 메일 첨부 자동화,
📄 문서 백업 정리에 매우 유용합니다.
다음 글에서는 **“엑셀에서 버튼 클릭 시 메일로 자동 전송하는 방법(첨부 포함)”**을 소개해드릴게요. 예: 버튼 클릭 시 PDF로 저장된 파일을 자동으로 Outlook 메일에 첨부해 전송까지!
카테고리 없음
엑셀에서 버튼 클릭 시 전체 시트를 PDF로 자동 저장하는 방법 (VBA 활용)
반응형
반응형