Spis treści
Istnieją korzyści z eksportu Excel arkusz kalkulacyjny jako PDF dokument.Dzięki zmianie pliku na format PDF, będziemy mogli go wydrukować i podzielić się nim z różnymi powiązaniami zawodowymi.PDF-y są godnym zaufania standardem eksportu dokumentów, które odczuwasz potrzebę podzielenia się z innymi lub upublicznienia.W tym artykule zademonstrujemy kilka przykładów VBA, aby wydrukować jako PDF i zapisać z automatyczną nazwą pliku.
Pobierz Zeszyt ćwiczeń
Możesz pobrać zeszyt ćwiczeń i ćwiczyć z nimi.
VBA Print to PDF.xlsm9 Przykłady Excel VBA do drukowania jako PDF i zapisywania z automatyczną nazwą pliku w Excelu
Możemy łatwo wydrukować plik Excela jako PDF i zapisać plik z automatyczną nazwą pliku, używając paska narzędzi Excela.Ale, łatwiej byłoby z Excel VBA . We just need the VBA Nie potrzebujemy tak wielu kliknięć, aby wykonać zadanie, a to oszczędza nasz czas.
Visual Basic for Applications ( VBA ) jest modelem programowania i izolowanym programem, który jest najczęściej spotykany w Microsoft Office Jest to narzędzie analityczne, często dostępne jako Dodatki do Excela który optymalizuje czynności manualne, takie jak monotonne, czasochłonne zadania. Może również generować CSV pliki. zobaczmy więc kilka przykładów, aby wydrukować plik Excela jako PDF z automatyczną nazwą pliku.
1. drukuj skoroszyt do PDF & Zapisz nazwę pliku automatycznie w Excelu
Załóżmy, że chcemy wydrukować cały skoroszyt i zapisać nazwę pliku tak, jak umieściliśmy nazwę w naszym kodzie. Teraz załóżmy, że chcemy zapisać plik PDF na naszym komputerze Dysk lokalny (E:) Jak widać na poniższym obrazku, lokalizacja nie zawiera żadnych plików pdf. Po uruchomieniu kodu VBA, będziemy mogli zobaczyć nasz pożądany PDF plik w tej lokalizacji na naszym komputerze.
Z Excel VBA , użytkownicy mogą łatwo użyć kodu, który działa jak menu Excela z poziomu wstążki.Aby użyć VBA kod do drukowania pdf i zapisywania z automatyczną nazwą pliku, postępujmy zgodnie z procedurą.
KROKI:
- Po pierwsze, przejdź do Deweloper zakładka ze wstążki.
- Po drugie, z Kod kategorii, kliknij na Visual Basic aby otworzyć Edytor Visual Basic . lub naciśnij Alt + F11 aby otworzyć Edytor Visual Basic .
- Zamiast tego możesz po prostu kliknąć prawym przyciskiem myszy na swoim arkuszu i przejść do Wyświetl kod To przeniesie cię również do Edytor Visual Basic .
- Pojawi się to w Edytor Visual Basic gdzie piszemy nasze kody do tworzenia tabeli z zakresu.
- Po trzecie, kliknij na Moduł od Wkładka pasek menu rozwijanego.
- To stworzy Moduł w swoim zeszycie.
- A także, skopiuj i wklej VBA kod pokazany poniżej.
VBA Kod:
Sub Print_Workbook() Dim loc As String loc = "E:™Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub.
- Uruchom kod naciskając przycisk F5 na klawiaturze.
- W końcu widać, że nazwa pliku PDF, Workbook znajduje się teraz na tej ścieżce na Twoim komputerze. Oznacza to więc, że nazwa pliku jest automatycznie zapisywana.
- I na koniec, jeśli wrócisz do swojego skoroszytu, możesz zobaczyć kilka przerywanych linii. To dlatego, że plik jest teraz gotowy do drukowania.
Objaśnienie kodu VBA
Sub Print_Workbook()
Sub jest częścią kodu, która służy do wykonywania pracy w kodzie, ale nie zwraca żadnej wartości. Jest również znana jako podprocedura. Tak więc nazwiemy naszą procedurę Print_Workbook() .
loc = "E:\Workbook.pdf"
Ta linia służy do podania lokalizacji i nazwy pliku pdf. Tutaj zapisujemy nasz plik w E: na naszym komputerze i nazwać plik Workbook .
ActiveWorkbook.ExportAsFixedFormat Typ:=xlTypePDF, filename:=loc
Ta linia kodu służy do wyeksportowania pliku Excela jako PDF i przygotowania go do druku.
End Sub
Spowoduje to zakończenie procedury.
Read More: Eksport Excela do PDF z hiperłączami (2 szybkie metody)
2. zapisz aktywny arkusz automatycznie jako PDF.
Zobaczmy kolejny przykład drukowania aktywnego arkusza do pdf i automatycznego zapisywania nazwy pliku za pomocą Excel VBA .
KROKI:
- Najpierw przejdź do Opracuj r zakładka ze wstążki.
- Po drugie, kliknij na Visual Basic aby otworzyć Edytor Visual Basic .
- Inny sposób na otwarcie Edytor Visual Basic to po prostu nacisnąć Alt + F11 .
- Lub kliknij prawym przyciskiem myszy na arkuszu, a następnie wybierz Wyświetl kod .
- Następnie przejdź do Wkładka i wybrać Moduł z menu rozwijanego.
- I, to otworzy okno visual basic.
- Następnie należy skopiować i wkleić Kod VBA poniżej.
VBA Kod:
Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub.
- Następnie należy nacisnąć przycisk Klawisz F5 lub kliknij na Run Sub aby uruchomić kod.
- Podobnie jak w poprzednim przykładzie, plik jest zapisywany jako PDF z automatyczną nazwą pliku.
Jeśli czytasz przykładowy1 wyjaśnienie kodu, to też zrozumiesz.
Read More: Makro Excel: Zapisz jako PDF z datą w nazwie pliku (4 odpowiednie przykłady)
3. drukowanie pliku PDF z Excela za pomocą VBA w zakresie
Przyjrzyjmy się kolejnemu przykładowi wykorzystania Excel VBA do drukowania aktywnego arkusza do pdf i automatycznego zapisywania nazwy pliku.
KROKI:
- Aby rozpocząć, kliknij Deweloper na wstążce.
- Po drugie, uruchomić Edytor Visual Basic klikając na Visual Basic .
- Alternatywnie można uzyskać dostęp do Edytor Visual Basic poprzez naciśnięcie Alt + F11 .
- Albo, kliknij prawym przyciskiem myszy na stronie na arkuszu i wybierz Wyświetl kod z menu.
- Następnie należy wybrać Moduł z listy rozwijanej pod Wkładka .
- I pojawi się okno visual basic.
- Napisz tam kod.
VBA Kod:
Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub
- Na koniec naciśnij przycisk Klawisz F5 aby uruchomić kod.
- Następnie można zobaczyć, że do tej lokalizacji na komputerze został dodany plik PDF o nazwie Workbook, dzięki czemu nazwa pliku jest automatycznie zachowywana.
Read More: Drukuj zakres do PDF za pomocą VBA w Excelu (5 najprostszych przykładów)
4. Excel VBA do pętli przez wybrany arkusz i wydrukować PDF
Rzućmy okiem na inny sposób drukowania do PDF i automatycznego zapisywania nazwy pliku.
KROKI:
- Aby rozpocząć, otwórz wstążkę i wybierz opcję Deweloper opcja.
- Następnie, aby uzyskać dostęp do Edytor Visual Basic , kliknij na Visual Basic .
- Naciskając Alt + F11 spowoduje również pojawienie się Edytor Visual Basic .
- Ewentualnie, kliknij prawym przyciskiem myszy na stronie arkusza i wybierz Wyświetl kod z wyświetlonego menu.
- Teraz, z Wkładka opcja rozwijana, wybierz Moduł .
- Następnie skopiuj i wklej VBA kod, który następuje.
VBA Kod:
Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub.
- Uruchom kod naciskając przycisk F5 klucz.
- W końcu można zobaczyć, że plik PDF Workbook został załadowany do tego obszaru na komputerze. W konsekwencji nazwa pliku jest zachowywana automatycznie.
Spowoduje to zapisanie pliku jako numeru arkusza w skoroszycie.
Objaśnienie kodu VBA
For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht
Ta linia kodów pętli for służy do wyeksportowania pliku excela jako pdf i wydrukowania pliku.
Read More: Excel VBA: Eksportuj PDF w formacie stałym z dopasowaniem do strony (3 przykłady)
5. drukuj do PDF i zapisz nazwę pliku instynktownie w Excelu
Teraz spójrz na inną metodę Excel VBA, aby zapisać pliki Excela do pdf i nazwać plik automatyczny system.
KROKI:
- Aby rozpocząć, otwórz wstążkę i wybierz Deweloper z menu rozwijanego.
- Następnie należy wybrać Visual Basic aby otworzyć Edytor Visual Basic .
- Na stronie Edytor Visual Basic można również uzyskać dostęp poprzez naciśnięcie przycisku Alt + F11 .
- Ewentualnie można kliknij prawym przyciskiem myszy na stronie arkusza i wybierz Wyświetl kod z menu podręcznego.
- Następnie należy wybrać Moduł od Wkładka menu rozwijane.
- Dalej skopiuj i wklej następujący kod VBA.
VBA Kod:
Sub PrntPDF2() Dim loc As String loc = "E:‖ ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub.
- Na koniec uruchom kod naciskając F5 na klawiaturze i widzisz wynik.
- Następnie zobaczysz, że Workbook PDF Plik został już zapisany w tej lokalizacji na komputerze. W związku z tym nazwa pliku jest zachowywana automatycznie.
Podobnie jak we wcześniejszym przykładzie, również i to spowoduje zapisanie w pliku pdf numeru arkusza.
Objaśnienie kodu VBA
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2
Blok kodu służy do drukowania i zapisywania pliku excel jako pdf.
Read More: Drukowanie do pliku PDF i wysyłanie wiadomości e-mail przy użyciu VBA w programie Excel (2 użyteczne przypadki)
6. funkcja VBA do drukowania PDF i zapisywania nazwy pliku automatycznie
Poznajmy kolejny sposób Excela VBA na drukowanie do PDF i automatyczne zapisywanie nazwy pliku.W tym przykładzie użyjemy funkcji i zapiszemy plik do PDF.Użyjemy również funkcji Msgbox aby dać nam komunikat, czy plik został zapisany, czy nie.
KROKI:
- Na początku należy udać się do Deweloper tab> Visual Basic > Wkładka > Moduł .
- Albo, klikając prawym przyciskiem myszy na stronie na arkuszu otworzy się okno, z którego należy przejść do Wyświetl kod .
- A to przeniesie cię do Edytor Visual Basic pole, gdzie możemy napisać Makra VBA .
- Z drugiej strony, wciśnięcie Alt + F11 otworzy również Edytor Visual Basic .
- Następnie należy wpisać VBA kod.
VBA Kod:
Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrks.Range("A1").Value & " Print " &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Drukuj PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Nie udało się wydrukować" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =.CBool(Len(Dir$(rsFullPath))> 0) End Function
- I, uruchom kod, aby zobaczyć wynik, naciskając przycisk Klawisz F5 .
- Pojawi się to w Msgbox i upewnij się, że plik PDF jest już gotowy do druku.
- Podobnie jak poprzednio, zauważymy, że plik PDF Workbook został już zapisany w tej lokalizacji na komputerze. W związku z tym nazwa pliku jest domyślnie zachowana.Ponieważ ustawiamy nazwę pliku Drukuj PDF , zapisał nazwę pliku Drukuj PDF.
Jeśli spojrzysz na poprzednie wyjaśnienie kodu, zrozumiesz linie kodu poprawnie. Nie musisz zmieniać kodu, po prostu zmień zakresy według swoich preferencji. Możesz skopiować kod i użyć go do celów roboczych.
Read More: Makro Excel do Zapisz jako PDF z nazwą pliku z wartości komórki (2 przykłady)
7. Excel VBA Kod do drukowania do PDF i zapisać nazwę pliku automatycznie
Przyjrzyjmy się kolejnej metodzie Excel VBA na drukowanie do PDF i automatyczne zapisywanie nazwy pliku.
KROKI:
- Aby rozpocząć, przejdź do Deweloper na wstążce.
- Po drugie, w sekcji Kod wybierz Visual Basic aby uruchomić Edytor Visual Basic Aby otworzyć Edytor Visual Basic , kliknij Alt + F11 .
- Możesz również kliknąć prawym przyciskiem myszy na swoim arkuszu i wybrać Wyświetl kod . To przeniesie cię do Edytor Visual Basic również.
- Zostanie to wyświetlone w Edytor Visual Basic , gdzie napiszemy kod generujący tabelę z zakresu.
- Po trzecie, z paska menu rozwijanego Insert wybierz Moduł .
- A także, skopiuj i wklej VBA kod pokazany poniżej.
VBA Kod:
Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "‖ snam = wrksht.Range("A1‖).Value & " - " &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler End Sub
- Następnie wykonaj kod, klikając przycisk RubSub lub uderzenie w F5 skrót klawiaturowy.
- W szczególności więc, a Msgbox pojawi się.
- Plik jest zapisywany jako PDF z taką samą automatyczną nazwą pliku jak w poprzednim przykładzie.
Objaśnienie kodu VBA
sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value
Są one przeznaczone do uzyskania aktywnego folderu skoroszytu, jeśli skoroszyt zostanie zapisany.
sf = snam & ".pdf" slocf = sloc & sf
W ten sposób zostanie utworzona domyślna nazwa do zapisywania plików.
wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Ten blok po prostu eksportuje plik Excela do PDF w bieżącym folderze.
MsgBox "Wydrukuj PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Nie można wydrukować" Resume exitHandler
Dzięki temu zobaczymy komunikat potwierdzający z informacją o pliku w Microsoft Excel.
Read More: Drukowanie do PDF za pomocą przycisku Makro w Excelu (5 wariantów Makro)
8. drukuj określony arkusz programu Excel z automatyczną nazwą pliku
Przyjrzyjmy się innej metodzie Excel VBA, która umożliwia drukowanie do PDF i automatyczne przechowywanie nazwy pliku.
KROKI:
- W pierwszej kolejności należy wybrać Deweloper zakładka ze wstążki.
- Po drugie, w ramach Kod kategoria, wybierz Visual Basic aby uruchomić Edytor Visual Basic Alternatywnie, naciśnij Alt + F11 aby uruchomić Edytor Visual Basic .
- Zamiast tego kliknij prawym przyciskiem myszy na swoim arkuszu i wybierz Wyświetl kod .
- Zostanie to wyświetlone w Edytor Visual Basic , gdzie napiszemy nasz kod do generowania tabeli z zakresu.
- Po trzecie, z rozwijanego paska menu Insert wybierz Module.
- Dalej, skopiuj i wklej Kod VBA poniżej.
VBA Kod:
Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\"Plik PDF.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub.
- Ponadto, uruchom kod klikając na przycisk RubSub lub używając przycisku F5 skrót klawiaturowy.
- Plik ten jest zapisywany jako PDF o takiej samej nazwie jak w poprzednim przykładzie.
Objaśnienie kodu VBA
Dim loc As String Dim r As Range loc = "E:\PDF Plik.pdf" Set rng = Sheets("IT").Range("A1:F13")
Te bloki kodów służą do tworzenia i przypisywania zmiennych.
rng.ExportAsFixedFormat Typ:=xlTypePDF, _ filename:=loc
Spowoduje to zapisanie zakresu danych pliku jako PDF.
Read More: Jak przekonwertować Excel na PDF bez utraty formatowania (5 skutecznych sposobów)
9) Zapisz nazwę pliku w sposób automatyczny podczas drukowania do PDF w Excelu VBA
Spójrzmy na inną metodę Excel VBA do drukowania do PDF i automatycznego przechowywania nazwy pliku.
KROKI:
- Na początek należy wybrać Deweloper zakładka ze wstążki.
- Po drugie, wybierz Visual Basic od Kod aby otworzyć obszar Edytor Visual Basic . Kliknij Alt + F11 aby uruchomić Edytor Visual Basic .
- Możesz również kliknąć prawym przyciskiem myszy na swoim arkuszu i wybrać Wyświetl kod To również przeniesie cię do Edytor Visual Basic .
- Teraz możemy zobaczyć Edytor Visual Basic , gdzie napiszemy kod tworzący tabelę z zakresu.
- Dalej, wybierz Moduł od Wkładka pasek menu rozwijanego.
- Następnie skopiuj i wklej VBA kod, który następuje.
VBA Kod:
Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Kopiuje arkusze do nowego pliku PDF w celu wysłania pocztą elektroniczną Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Zapisane jako plik .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Przejrzyj dokument .pdf."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Nie można zapisać jako PDF." Automatioc_Name = False EndMacro: End Function
- Kod zostanie wykonany po kliknięciu przycisku RubSub lub używając przycisku F5 skrót klawiaturowy.
Objaśnienie kodu VBA
sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf"
Dla uzyskania pliku jako pdf i zapisać nazwę pdf.
On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0
To tylko ustawienie jakości druku.
On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Zapisany jako plik .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Przejrzyj dokument .pdf." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Nie można zapisać jakoPDF." Automatioc_Name = False
Te linie będą instruować użytkownika, jak wysłać plik, aby wydrukować go jako pdf.
Read More: Jak zapisać program Excel jako PDF bez obcinania (4 odpowiednie sposoby)
Wniosek
Powyższe metody pomogą Ci wykonać tę pracę od Drukowanie do PDF i zapisywanie automatycznej nazwy pliku w Excelu VBA Mam nadzieję, że to ci pomoże! Jeśli masz jakieś pytania, sugestie lub opinie, daj nam znać w sekcji komentarzy. Możesz też rzucić okiem na nasze inne artykuły w ExcelWIKI.com blog!