VBA — eksport arkusza do PDF

Gotowe makro VBA eksportujące arkusz Excela do PDF. Automatyczna nazwa pliku, ścieżka skoroszytu i ustawienia ExportAsFixedFormat.

Najkrócej:

Do eksportu arkusza do PDF służy metoda ExportAsFixedFormat. Nie musisz instalować dodatkowej biblioteki.

Gotowy kod

Skopiuj makro

VBA
Sub EksportujPDF()
    Dim ws As Worksheet
    Dim filePath As String

    Set ws = ThisWorkbook.Worksheets("Raport")

    If ThisWorkbook.Path = "" Then
        MsgBox "Najpierw zapisz skoroszyt."
        Exit Sub
    End If

    filePath = ThisWorkbook.Path & "\Raport.pdf"

    ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=filePath, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    MsgBox "PDF zapisany: " & filePath
End Sub
Dostosowanie

Co zmienić w kodzie?

01

Zmień "Raport" na nazwę eksportowanego arkusza.

02

Możesz budować nazwę PDF dynamicznie, np. dodając Format(Date, "yyyymmdd").

03

IgnorePrintAreas:=False powoduje respektowanie ustawionego obszaru wydruku.

Wyjaśnienie

Jak działa ten kod?

ExportAsFixedFormat zapisuje arkusz bezpośrednio jako plik PDF.

ThisWorkbook.Path używa tego samego folderu, w którym zapisany jest skoroszyt.

OpenAfterPublish:=False zapobiega automatycznemu otwieraniu PDF po eksporcie.

Uważaj na

Najczęstsze błędy

Sprawdź ustawienia strony i obszar wydruku, jeśli PDF jest źle podzielony.

Niezapisany skoroszyt nie ma folderu w ThisWorkbook.Path.

Nazwa pliku nie może zawierać znaków niedozwolonych w Windows, np. dwukropka.