Worksheet 개체

현재 시트만 pdf 저장

노만e 2025. 3. 22. 11:33

1. 반복적인 수작업을 자동화

  • 보통 Excel 시트를 PDF로 저장하려면:
  • 파일 → 내보내기 → PDF로 저장 메뉴를 클릭
  • 저장 경로 지정
  • 파일 이름 지정
  • 옵션 설정
  • 이 과정을 매번 수동으로 하면 시간이 많이 걸리고 실수도 발생할 수 있어요.
  • 매크로를 사용하면 버튼 한 번으로 즉시 PDF 저장이 가능해집니다.

2. 정해진 이름 형식으로 자동 저장

  • PDF 파일명을 [통합문서명]_[시트명].pdf 형식으로 자동 생성합니다.
  • 파일 이름을 매번 타이핑할 필요가 없고, 정리와 관리가 훨씬 편리합니다.

3. 사용자가 저장 폴더를 직접 선택 가능

  • 저장 경로는 코드 안에 고정되어 있지 않고, 사용자가 폴더를 선택하도록 되어 있어 유연하게 사용할 수 있습니다.
  • 여러 프로젝트나 고객별로 폴더를 다르게 설정해 저장하는 경우 매우 유용합니다.

4. PDF 저장 후 자동 열기 기능 포함

  • 저장한 PDF를 바로 열 수 있어, 저장이 잘 되었는지 바로 확인 가능합니다.
  • OpenAfterPublish:=True 옵션 덕분에 바로 PDF 뷰어로 열립니다.

5. 리본 메뉴나 버튼에 연결 가능

  • Excel 리본 메뉴에 버튼을 만들고 연결하면, 비전문가도 쉽게 사용할 수 있습니다.
  • 반복되는 보고서, 견적서, 양식 등을 PDF로 저장할 때 매우 유용해요.
Sub SaveActiveSheetAsPDF()
Dim currentSheet As Worksheet
Dim selectedFolderPath As String
Dim pdfFilePath As String
' 현재 활성 시트를 변수에 할당
Set currentSheet = ActiveSheet
On Error Resume Next
' 폴더 선택 창 열기
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "PDF를 저장할 폴더를 선택하세요"
.Show

' 사용자가 폴더를 선택하지 않았을 경우 종료
If .SelectedItems.Count = 0 Then Exit Sub

' 선택한 폴더 경로 저장
selectedFolderPath = .SelectedItems(1) & "\"
End With
On Error GoTo 0
' 폴더 경로가 비어있으면 기본 경로 사용
If selectedFolderPath = "" Then
selectedFolderPath = Application.DefaultFilePath & "\"
End If
' PDF 파일명 생성: "통합문서명_시트명.pdf"
pdfFilePath = selectedFolderPath & _
Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1) & _
"_" & currentSheet.Name & ".pdf"
' 현재 시트를 PDF로 저장
On Error Resume Next
currentSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=pdfFilePath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
On Error GoTo 0
' 사용자에게 저장 완료 메시지 표시
MsgBox "PDF가 성공적으로 저장되었습니다!" & vbCrLf & pdfFilePath, _
vbInformation, "PDF 저장 완료"
End Sub

 

SaveActiveSheetAsPDF.xlsm
0.02MB