アクティブシートをPDFファイルで保存する
Sub SaveAsPDF()
'保存するファイル名を指定する
Dim FileName As String
FileName = "example.pdf"
'保存場所とファイル名を結合して、保存パスを作成する
Dim SavePath As String
SavePath = "C:\Users\username\Desktop\" & FileName
'PDFで保存する
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SavePath, Quality:=xlQualityStandard
End Sub
この例では、まず保存するファイル名をFileName
に指定します。次に、保存場所とファイル名を結合して、保存パスをSavePath
に作成します。最後に、ActiveSheet.ExportAsFixedFormat
でPDF形式で保存します。Type
引数にxlTypePDF
を指定して、保存形式をPDFに設定しています。Filename
引数にSavePath
を指定して、保存場所とファイル名を指定しています。Quality
引数には、PDFの品質を設定することができます。
この方法を使用すると、PDF形式で保存することができます。また、他のファイル形式に対応する定数も用意されていますので、必要に応じて指定してください。
サンプルコード
Sub ファイル保存_PDF_アクティブシートを名前に時刻をを付けてPDF保存()
On Error Resume Next
With ActiveSheet.PageSetup
.Zoom = False '倍率をクリア
.FitToPagesWide = 1 '横方向に1ページに収める
.FitToPagesTall = 1 '縦方向に1ページに収める
.CenterHorizontally = True '水平方向に中央配置
End With
Dim File_Path
Dim File_Name
File_Path = ThisWorkbook.Path
File_Name = ActiveSheet.Name
Application.DisplayAlerts = False
'PDF変換(.pdf)
Worksheets(File_Name).ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=File_Path & "\" & "PDF保存 " & VBA.Format(Now, "h時mm分ss秒") & ".pdf"
Application.DisplayAlerts = True
MsgBox "完了"
End Sub
解説
<印刷範囲を1ページに収める>
With ActiveSheet.PageSetup
.Zoom = False '倍率を通常サイズに戻す
.FitToPagesWide = 1 '横幅を1ページに収める
.FitToPagesTall = 1 '縦幅を1ページに収める
End With
<ページの余白を設定する:ポイント単位で余白を上下左右0設定>
With ActiveSheet.PageSetup
.TopMargin = (0) '上の余白を0ptにする
.BottomMargin = (0) '下の余白を0ptにする
.LeftMargin =(0) '左の余白を0ptにする
.RightMargin = (0) '右の余白を0ptにする
End With
<ページの余白を設定する:センチ単位で余白を上下左右0設定>
With ActiveSheet.PageSetup
.LeftMargin = Application.CentimetersToPoints(0)
.RightMargin = Application.CentimetersToPoints(0)
.TopMargin = Application.CentimetersToPoints(0)
.BottomMargin = Application.CentimetersToPoints(0)
End With
<ページの中央に設定する>
With ActiveSheet.PageSetup
.CenterHorizontally = True '水平方向で中央寄せ
.CenterVertically = True '垂直方向で中央寄せ
End With
コメント