例文を使って繰り返し業務を時短

【マクロ・VBA】アクティブシートをPDFファイルで保存する

エクセル、マクロ、VBAでアクティブシートをPDFファイルで保存する VBA

アクティブシートを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

コメント

タイトルとURLをコピーしました