當我們需要分享 PowerPoint 時,通常會以 PDF 格式寄出,本篇文章提供一個小巧的巨集,可以在存檔時同步將檔案存為 PDF 檔案。
程式碼中,首先使用 ActivePresentation.Save 方法將 PowerPoint 檔案存檔,接著使用ActivePresentation.ExportAsFixedFormat 方法匯出 PDF 檔案,同時指定儲存路徑和檔名。在匯出 PDF 時,使用了 FixedFormatType、Intent、FrameSlides、HandoutOrder、OutputType、PrintHiddenSlides 和 RangeType 等參數來設定匯出的格式和範圍。
參數說明:
FixedFormatType(匯出檔案格式):此參數為必要參數,用於指定匯出的檔案格式。可選的值包括 ppFixedFormatTypePDF、ppFixedFormatTypeXPS 等,表示匯出為 PDF 或 XPS 格式等不同類型的檔案。
Intent(匯出目的):此參數為選用參數,用於指定匯出檔案的目的。可選的值包括 ppFixedFormatIntentScreen、ppFixedFormatIntentPrint 等,表示匯出檔案用於螢幕瀏覽或列印等不同目的。
FrameSlides(匯出方式):此參數為選用參數,用於指定匯出檔案的方式。可選的值為 msoTrue 或 msoFalse,表示是否將幻燈片框架包含在匯出的檔案中。如果設定為 msoTrue,則匯出的檔案將包含幻燈片的框架;如果設定為 msoFalse,則匯出的檔案僅包含幻燈片的內容。
HandoutOrder(頁面排列方式):此參數為選用參數,用於指定匯出頁面的排列方式。可選的值包括 ppPrintHandoutHorizontalFirst 或 ppPrintHandoutVerticalFirst,表示頁面橫向或垂直排列。若需更精確地控制頁面的排列方式,也可使用 PrintOptions 參數來設定。
OutputType(匯出內容類型):此參數為選用參數,用於指定匯出的內容類型。可選的值包括 ppPrintOutputSlides、ppPrintOutputTwoSlideHandouts、ppPrintOutputThreeSlideHandouts、ppPrintOutputFourSlideHandouts 等,表示匯出的內容包括幻燈片、二張幻燈片講義頁面、三張幻燈片講義頁面、四張幻燈片講義頁面等不同類型的內容。
PrintHiddenSlides(匯出隱藏幻燈片):此參數用於指定是否匯出隱藏的幻燈片。可選的值為 msoTrue 或 msoFalse,其中 msoTrue 表示匯出隱藏的幻燈片,msoFalse 表示不匯出隱藏的幻燈片。
RangeType(匯出範圍):此參數為選用參數,用於指定匯出的範圍。可選的值包括 ppPrintAll、ppPrintSelection 等,表示匯出全部幻燈片或只匯出所選定的幻燈片。使用此參數時需要注意,若範圍設定為 ppPrintSelection,還需要使用 PrintRange 參數指定要匯出的幻燈片範圍。
PrintRange(匯出範圍):此參數為選用參數,用於指定要匯出的幻燈片範圍。可選的值包括 ppPrintAll、ppPrintSelection 或自定義的幻燈片範圍,例如 "1-3,5,7-9" 等。如果 RangeType 參數設定為 ppPrintSelection,則必須使用 PrintRange 參數來指定要匯出的幻燈片範圍。
這個小巨集讓我們輕鬆地將 PowerPoint 檔案轉換為 PDF 檔案,方便分享或列印。希望這個小技巧能對大家有所幫助。
以下為程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | Sub SaveAsPDF()
ActivePresentation.Save
Dim fileName As String
fileName = ActivePresentation.Name
fileName = Left(fileName, InStrRev(fileName, ".") - 1)
ActivePresentation.ExportAsFixedFormat _
Path:=ActivePresentation.Path & "\" & fileName & ".pdf", _
FixedFormatType:=ppFixedFormatTypePDF, _
Intent:=ppFixedFormatIntentPrint, _
FrameSlides:=msoTrue, _
HandoutOrder:=ppPrintHandoutVerticalFirst, _
OutputType:=ppPrintOutputSlides, _
PrintHiddenSlides:=msoFalse, _
RangeType:=ppPrintAll
MsgBox "The file has been saved as a PDF.", vbInformation, "Save As PDF"
End Sub
|
留言
張貼留言