Excel VBA om af te drukken als PDF en op te slaan met automatische bestandsnaam

  • Deel Dit
Hugh West

De uitvoer van een Excel spreadsheet als een PDF Door het bestand te wijzigen in PDF-formaat, kunnen we het afdrukken en delen met verschillende professionele connecties. PDF's zijn een betrouwbare standaard voor het exporteren van documenten die u met anderen wilt delen of openbaar wilt maken. In dit artikel demonstreren we enkele voorbeelden van VBA om af te drukken als PDF en op te slaan met een automatische bestandsnaam.

Download Praktijk Werkboek

Je kunt het werkboek downloaden en ermee oefenen.

VBA afdrukken naar PDF.xlsm

9 Voorbeelden van Excel VBA om af te drukken als PDF en op te slaan met automatische bestandsnaam in Excel

We kunnen gemakkelijk een Excel-bestand afdrukken als PDF en het bestand opslaan met een automatische bestandsnaam, met behulp van de Excel-werkbalk. Maar het zou gemakkelijker zijn met Excel VBA We hebben alleen de VBA code en voer ze uit. We hoeven niet zoveel te klikken om de taak te voltooien en dit bespaart onze tijd.

Visual Basic voor toepassingen ( VBA ) is een programmeermodel en geïsoleerd programma dat het meest voorkomt in Microsoft Office Het is een analytisch instrument, vaak beschikbaar als Excel-add-ins dat handmatige handelingen optimaliseert, zoals monotone, tijdrovende klusjes. Het kan ook het volgende genereren CSV Dus laten we enkele voorbeelden bekijken om het excel-bestand af te drukken als een PDF met de automatische bestandsnaam.

1. Werkboek afdrukken naar PDF & Bestandsnaam automatisch opslaan in Excel

Stel, we willen de hele werkmap afdrukken en de bestandsnaam opslaan zoals we de naam op onze code zetten. Stel nu dat we een PDF-bestand willen opslaan op onze computer Lokale schijf (E:) Zoals we in de onderstaande afbeelding kunnen zien, bevat de locatie geen pdf-bestanden. Na het uitvoeren van de VBA-code, zullen we in staat zijn om onze gewenste PDF bestand op die locatie op onze PC.

Met Excel VBA kunnen gebruikers gemakkelijk de code gebruiken die werkt als excel menu's van het lint. Om de VBA code om pdf af te drukken en op te slaan met een automatische bestandsnaam, laten we de procedure volgen.

STAPPEN:

  • Ga eerst naar de Ontwikkelaar tabblad van het lint.
  • Ten tweede, van de Code categorie, klik op Visual Basic om de Visual Basic-editor Of druk op Alt + F11 om de Visual Basic-editor .

  • In plaats daarvan kunt u gewoon met de rechtermuisknop op uw werkblad klikken en gaan naar Code bekijken Dit brengt u ook naar Visual Basic-editor .

  • Dit zal verschijnen in de Visual Basic-editor waar we onze codes schrijven om een tabel te maken van een reeks.
  • Klik ten derde op Module van de Plaats uitklapmenu.

  • Dit zal een Module in je werkboek.
  • En kopieer en plak de VBA onderstaande code.

VBA-code:

 Sub Print_Workbook() Dim loc Als String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ bestandsnaam:=loc End Sub 
  • Voer de code uit door op de F5 toets op uw toetsenbord.

  • Tenslotte ziet u dat een PDF-bestandsnaam, Werkboek staat nu op dat pad op uw computer. Dat betekent dus dat de bestandsnaam automatisch wordt opgeslagen.

  • En tot slot, als u teruggaat naar uw werkmap, ziet u enkele stippellijnen. Dat komt omdat het bestand nu klaar is om te worden afgedrukt.

VBA-code uitleg

 Sub Print_Workbook() 

Sub is een deel van de code dat wordt gebruikt om het werk in de code af te handelen, maar geen waarde teruggeeft. Het is ook bekend als subprocedure. Dus we noemen onze procedure Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Deze regel is voor de locatie en de pdf-bestandsnaam. Hier slaan we ons bestand op in E: op onze computer en noem het bestand Werkboek .

 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, bestandsnaam:=loc 

Deze regel code exporteert het excel-bestand als PDF en maakt het klaar voor afdrukken.

 Einde Sub 

Dit beëindigt de procedure.

Lees meer: Excel exporteren naar PDF met hyperlinks (2 snelle methoden)

2. Actief werkblad automatisch opslaan als PDF

Laten we nog een voorbeeld bekijken van het afdrukken van een actief blad naar een pdf en het automatisch opslaan van de bestandsnaam met behulp van Excel VBA .

STAPPEN:

  • Ga eerst naar de Ontwikkelen r tabblad van het lint.
  • Ten tweede, klik op Visual Basic om de Visual Basic-editor .
  • Een andere manier om de Visual Basic-editor is gewoon op Alt + F11 .
  • Of klik met de rechter muisknop op het blad en selecteer vervolgens Code bekijken .
  • Ga vervolgens naar Plaats en selecteer Module uit het drop-down menu.
  • En dit zal het visual basic venster openen.
  • Kopieer en plak daarna de VBA-code hieronder.

VBA-code:

 Sub Print_Sheet() Dim loc Als String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ bestandsnaam:=loc End Sub 
  • Druk verder op de F5 toets of klik op de Run Sub om de code uit te voeren.

  • Net als in het vorige voorbeeld wordt het bestand opgeslagen als PDF met de automatische bestandsnaam.

Als je leest voorbeeld1's code uitleg, zul je dit ook begrijpen.

Lees meer: Excel Macro: Opslaan als PDF met datum in bestandsnaam (4 geschikte voorbeelden)

3. PDF-bestand afdrukken vanuit Excel met VBA in bereik

Laten we een ander voorbeeld bekijken van het gebruik van Excel VBA om een actief blad af te drukken naar pdf en de bestandsnaam automatisch op te slaan.

STAPPEN:

  • Om te beginnen klikt u op de Ontwikkelaar tabblad op het lint.
  • Ten tweede, start de Visual Basic-editor door te klikken op Visual Basic .
  • U kunt ook toegang krijgen tot de Visual Basic-editor door op Alt + F11 .
  • Of, klik met de rechtermuisknop op op het blad en kies Code bekijken uit het menu.
  • Kies vervolgens de Module uit de drop-down box onder Plaats .
  • En het visual basic venster verschijnt.
  • Schrijf de code daar.

VBA-code:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Kopieën:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Druk ten slotte op de F5 toets om de code uit te voeren.

  • Daarna ziet u dat een PDF-bestand met de naam Werkboek is toegevoegd aan die locatie op uw computer. Daardoor blijft de bestandsnaam automatisch behouden.

Lees meer: Bereik afdrukken naar PDF met VBA in Excel (5 gemakkelijkste voorbeelden)

4. Excel VBA om door het geselecteerde blad te lussen en PDF af te drukken

Laten we eens kijken naar een andere manier om af te drukken naar PDF en de bestandsnaam automatisch op te slaan.

STAPPEN:

  • Om te beginnen opent u het lint en selecteert u de Ontwikkelaar optie.
  • Dan, om toegang te krijgen tot de Visual Basic-editor klik dan op Visual Basic .
  • Druk op Alt + F11 zal ook de Visual Basic-editor .
  • Als alternatief, klik met de rechtermuisknop op het blad en kies Code bekijken uit het menu dat verschijnt.
  • Nu, van de Plaats drop-down optie, kies Module .
  • Kopieer en plak dan de VBA code die volgt.

VBA-code:

 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" Volgende wrksht sht.Select End Sub 
  • Voer de code uit door op de F5 sleutel.

  • Uiteindelijk kunt u zien dat een PDF-bestand van het werkboek is geüpload naar dat gebied op uw computer, waardoor de bestandsnaam automatisch wordt bewaard.

Dit zal het bestand opslaan als het bladnummer van de werkmap.

VBA-code uitleg

 Voor Elke wrksht In sht wrksht.Selecteer wrksht.ExportAsFixedFormat Type:=xlTypePDF, bestandsnaam:=DitWerkboek.Path & "/" & wrksht.Name & ".pdf" Volgende wrksht 

Deze coderegel van de for-lus is bedoeld om het excel-bestand als pdf te exporteren en af te drukken.

Lees meer: Excel VBA: ExportAsFixedFormat PDF met aanpassen aan pagina (3 voorbeelden)

5. Afdrukken naar PDF en de bestandsnaam instinctief opslaan in Excel

Bekijk nu een andere Excel VBA methode voor het opslaan van excel bestanden naar pdf en noem het bestand automatisch systeem.

STAPPEN:

  • Om te beginnen opent u het lint en kiest u Ontwikkelaar uit het drop-down menu.
  • Selecteer vervolgens Visual Basic om de Visual Basic-editor .
  • De Visual Basic-editor kan ook worden geopend door op Alt + F11 .
  • U kunt ook klik met de rechtermuisknop op het blad en selecteer Code bekijken uit het pop-up menu.
  • Selecteer daarna Module van de Plaats uitklapmenu.
  • Kopieer en plak verder de volgende VBA-code.

VBA-code:

 Sub PrntPDF2() Dim loc Als String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ bestandsnaam:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Voer tenslotte de code uit door op F5 op je toetsenbord en je ziet het resultaat.

  • U zult vervolgens zien dat een Werkboek PDF bestand al was opgeslagen op die locatie op uw PC. Daardoor blijft de bestandsnaam automatisch behouden.

Net als in het eerdere voorbeeld zal dit ook het pdf-bestand opslaan als het bladnummer.

VBA-code uitleg

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, bestandsnaam:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Het codeblok is voor het afdrukken en opslaan van het excelbestand als pdf.

Lees meer: Afdrukken naar PDF en e-mail met behulp van VBA in Excel (2 nuttige voorbeelden)

6. VBA-functie om PDF af te drukken en bestandsnaam automatisch op te slaan

Laten we een andere Excel VBA-manier verkennen om af te drukken naar PDF en de bestandsnaam automatisch op te slaan. We zullen in dit voorbeeld een functie gebruiken en het bestand opslaan naar PDF. We gebruiken ook de Msgbox om ons een bericht te geven of het bestand is opgeslagen of niet.

STAPPEN:

  • Ga in het begin naar de Ontwikkelaar tab> Visual Basic > Plaats > Module .
  • Of, rechts klikken op op het werkblad zal een venster openen. Ga van daaruit naar het Code bekijken .
  • En, dit brengt je naar de Visual Basic-editor veld, waar we kunnen schrijven VBA-macro's .
  • Aan de andere kant, door op Alt + F11 zal ook de Visual Basic-editor .
  • Daarna typt u de VBA code.

VBA-code:

 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 & "amp" 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 "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =.CBool(Len(Dir$(rsFullPath))> 0) Einde Functie 
  • En voer de code uit om het resultaat te zien door op de knop F5 toets .

  • Dit zal verschijnen in Msgbox en zorg ervoor dat het PDF-bestand nu klaar is om af te drukken.

  • Net als voorheen zult u zien dat een PDF-bestand van het werkboek al is opgeslagen op die locatie op uw computer. Daardoor blijft de bestandsnaam standaard behouden. Als we de bestandsnaam instellen Afdrukken PDF het bewaarde de bestandsnaam Afdrukken PDF.

Als u de uitleg van de vorige code bekijkt, zult u de regels van de code goed begrijpen. U hoeft de code niet te veranderen, alleen de reeksen volgens uw voorkeuren. U kunt de code kopiëren en gebruiken voor uw werkdoeleinden.

Lees meer: Excel Macro om op te slaan als PDF met bestandsnaam uit celwaarde (2 voorbeelden)

7. Excel VBA-code om af te drukken naar PDF en de bestandsnaam automatisch op te slaan

Laten we eens kijken naar een andere Excel VBA-methode voor het afdrukken naar PDF en het automatisch opslaan van de bestandsnaam.

STAPPEN:

  • Navigeer om te beginnen naar de Ontwikkelaar tabblad op het lint.
  • Ten tweede, onder de Code sectie, selecteer Visual Basic om de Visual Basic-editor Om de Visual Basic-editor klik Alt + F11 .
  • U kunt ook gewoon met de rechtermuisknop op uw werkblad klikken en kiezen voor Code bekijken Dit brengt u naar de Visual Basic-editor ook.
  • Dit wordt weergegeven in de Visual Basic-editor , waar we de code zullen schrijven om een tabel te genereren uit een bereik.
  • Ten derde selecteert u in het uitklapmenu Invoegen Module .
  • En kopieer en plak de VBA onderstaande code.

VBA-code:

 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 Einde Sub 
  • Voer vervolgens de code uit door op de RubSub knop of door op de F5 sneltoets.

  • In het bijzonder dus een Msgbox zal verschijnen.

  • Het bestand wordt opgeslagen als een PDF met dezelfde geautomatiseerde bestandsnaam als in het vorige voorbeeld.

VBA-code uitleg

 sloc = wrkbk.Path Als sloc = "" Dan sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Die zijn om de actieve werkmap te krijgen als de werkmap is opgeslagen.

 sf = snam & ".pdf" slocf = sloc & sf 

Dit creëert de standaardnaam voor het opslaan van bestanden.

 wrksht.ExportAsFixedFormat Type:=xlTypePDF, bestandsnaam:=slocf, Kwaliteit:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Dat blok exporteert alleen het excel-bestand naar PDF in de huidige map.

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

Hierdoor krijgen we een bevestigingsbericht te zien met bestandsinformatie in Microsoft Excel.

Lees meer: Afdrukken naar PDF met macroknop in Excel (5 macrovarianten)

8. Een specifiek Excel blad afdrukken met automatische bestandsnaam

Laten we eens kijken naar een andere Excel VBA-methode voor het afdrukken naar PDF en het automatisch opslaan van de bestandsnaam.

STAPPEN:

  • Selecteer in de eerste plaats de Ontwikkelaar tabblad van het lint.
  • Ten tweede, onder de Code categorie, selecteer Visual Basic om de Visual Basic-editor Of druk op Alt + F11 om de Visual Basic-editor .
  • Klik in plaats daarvan met de rechtermuisknop op uw werkblad en selecteer Code bekijken .
  • Dit wordt weergegeven in de Visual Basic-editor , waar we onze code zullen schrijven om een tabel te genereren uit een bereik.
  • Ten derde selecteert u Module in de keuzelijst Invoegen.
  • Kopieer en plak verder de VBA-code hieronder.

VBA-code:

 Sub PrintPDF5() Dim loc als String Dim r als Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Verder voert u de code uit door op de RubSub knop of met behulp van de F5 sneltoets.

  • Dit bestand wordt opgeslagen als een PDF met dezelfde naam als het vorige voorbeeld.

VBA-code uitleg

 Dim loc als String Dim r als Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Die blokken van de codes zijn voor het maken en toewijzen van variabelen.

 rng.ExportAsFixedFormat Type:=xlTypePDF, _ bestandsnaam:=loc 

Dit zal een reeks bestandsgegevens opslaan als PDF.

Lees meer: Hoe Excel converteren naar PDF zonder verlies van opmaak (5 effectieve manieren)

9. Bestandsnaam automatisch opslaan tijdens het afdrukken naar PDF in Excel VBA

Laten we eens kijken naar een andere Excel VBA-methode voor het afdrukken naar PDF en het automatisch opslaan van de bestandsnaam.

STAPPEN:

  • Om te beginnen selecteert u de Ontwikkelaar tabblad van het lint.
  • Ten tweede, kies Visual Basic van de Code gebied om de Visual Basic-editor Klik Alt + F11 om de Visual Basic-editor .
  • U kunt ook met de rechtermuisknop op uw werkblad klikken en kiezen voor Code bekijken Dit brengt u ook naar de Visual Basic-editor .
  • Nu kunnen we de Visual Basic-editor , waar we de code zullen schrijven om een tabel te maken van een bereik.
  • Selecteer verder Module van de Plaats uitklapmenu.
  • Kopieer en plak dan de VBA code die volgt.

VBA-code:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Kopieert bladen naar nieuw PDF-bestand voor e-mail 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, bestandsnaam:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Opgeslagen als .pdf bestand: " & vbCrLf & vbCrLf & SvAs & _ "Bekijk het .pdf document."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • De code wordt dan uitgevoerd door op de RubSub knop of met behulp van de F5 sneltoets.

VBA-code uitleg

 sht = ActiveSheet.Name bestand = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "amp; sht & ".pdf". 

Om het bestand als pdf te krijgen en de naam van de pdf op te slaan.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Dit stelt alleen de afdrukkwaliteit in.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, bestandsnaam:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Opgeslagen als .pdf bestand: " & vbCrLf & vbCrLf & SvAs & _ "Bekijk het .pdf document." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save asPDF." Automatioc_Name = False 

Die regels zullen een gebruiker instrueren hoe hij het bestand moet verzenden om het als pdf af te drukken.

Lees meer: Hoe Excel opslaan als PDF zonder afsnijden (4 geschikte manieren)

Conclusie

De bovenstaande methoden zullen u helpen om dat werk van Afdrukken naar PDF en automatische bestandsnaam opslaan in Excel VBA Ik hoop dat dit je zal helpen! Als je vragen, suggesties of feedback hebt, laat het ons dan weten in de commentaarsectie. Of je kunt een blik werpen op onze andere artikelen in de ExcelWIKI.com blog!

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.