매크로/모듈(Module)

선택시트를 지정 폴더에 시트 결합 PDF 출판

고추탄 2024. 6. 1. 00:00

Option Explicit

Sub Total_Publish_To_Pdf()

 '★★결합PDF저장★★

 'PDF FILE 저장 POLDER 지정
  Dim strPolderName As String
 '확장자를 포함한 워크북명
  Dim LATUS As String
 '확장자를 제거한 워크북명
  Dim strFileName As String
  Dim iSplit As Integer
  Dim sht As Worksheet
  Dim vAry() As Integer
  Dim ShtAry() As String
  Dim i As Integer
  Dim n As Integer
  
  
 'PDF 출판 폴더를 지정
  With Application.FileDialog(msoFileDialogFolderPicker)
                                                       .Show
                                                    If .SelectedItems.Count = 0 Then Exit Sub
                                       strPolderName = .SelectedItems(1)
  End With
  
         
 '지정 폴더를 열기
  Shell "rundll32.exe url.dll,FileProtocolHandler " & strPolderName, vbNormalFocus
  
  LATUS = ActiveWorkbook.Name
  
 '확장자를 제거한 워크북명(filename)
  strFileName = ""
  iSplit = InStrRev(LATUS, ".")

 If iSplit = 0 Then
    strFileName = LATUS
 Else
    strFileName = Left(LATUS, iSplit - 1)
 End If

  
  i = 0
  
 '선택된 시트를 배열에 저장
  For Each sht In ActiveWindow.SelectedSheets
         
     i = i + 1
         
     ReDim Preserve vAry(1 To i)
     ReDim Preserve ShtAry(1 To i)
        
     vAry(i) = sht.Index
     ShtAry(i) = sht.Name
     
  Next
  
  
 '선택된 시트를 배열로 받아 다중시트 선택
  Worksheets(ShtAry).Select
      
  
 'PDF 출판                                          
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPolderName & "\" & strFileName & ".pdf"
  

End Sub


LIST