Bu eğitim, Excel VBA'da bir PDF'ye nasıl kaydedileceğini / yazdırılacağını gösterecektir.
PDF'ye yazdır
Bu basit prosedür, ActiveSheet'i bir PDF'ye yazdıracaktır.
123456 | Alt SimplePrintToPDF()ActiveSheet.ExportAsFixedFormat Tür:=xlTypePDF, Dosya Adı:="demo.pdf", Kalite:=xlQualityStandard, _IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueAlt Bitiş |
ActiveSheet'i bir PDF'ye yazdıracak hata işleme vb. içeren bir işlev de oluşturdum:
12345678910111213141516171819202122232425262728293031323334353637383940 | Alt PrintPDF()Save_PDF'yi arayınAlt Bitişİşlev Save_PDF() As Boolean ' E-posta göndermek için sayfaları yeni PDF dosyasına kopyalarBu Sayfayı Dize Olarak Karartın, Bu Dosyayı Dize Olarak, PathName As Dizesini KarartınDize Olarak SvA'ları DimApplication.ScreenUpdating = Yanlış' Dosya Kaydet Adını AlBu sayfa = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Bu Sayfa & ".pdf"'Baskı Kalitesini AyarlaHatada Devam Et SonrakiActiveSheet.PageSetup.PrintQuality = 600Hata.TemizleHatada GoTo 0' Kullanıcıya nasıl gönderileceğini öğretinHatada RefLibError'a GitActiveSheet.ExportAsFixedFormat Tür:=xlTypePDF, Dosya Adı:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueHatada GoTo 0Sadece kaydet:MsgBox "Bu sayfanın bir kopyası başarıyla .pdf dosyası olarak kaydedildi: " & Chr(13) & Chr(13) & SvAs & _".pdf belgesini inceleyin. Belge iyi görünmüyorsa, yazdırma parametrelerinizi ayarlayın ve yeniden deneyin."Save_PDF = DoğruSona GitMakroRefLibError:MsgBox "PDF olarak kaydedilemedi. Referans kitaplığı bulunamadı."Save_PDF = YanlışEndMakro:Bitiş İşlevi |
PDF'ye yazdırma başarılı olmuş veya olmamışsa işlev DOĞRU veya YANLIŞ döndürür.
PDF'yi Kaydet ve E-postayla Gönder İşlevi
Bu işlev, ActiveSheet'i bir PDF olarak kaydeder ve (isteğe bağlı olarak) PDF'yi bir e-postaya ekler (Outlook'un yüklü olduğunu varsayarak):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | Alt Test_Save_PDF()Send_PDF("SendEmail") arayınAlt Bitişİşlev Send_PDF(İsteğe bağlı eylem As String = "SaveOnly") As Boolean ' Sayfaları e-postayla göndermek için yeni PDF dosyasına kopyalarBu Sayfayı Dize Olarak Karartın, Bu Dosyayı Dize Olarak, PathName As Dizesini KarartınDize Olarak SvA'ları DimApplication.ScreenUpdating = Yanlış' Dosya Kaydet Adını AlBu sayfa = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Bu Sayfa & ".pdf"'Baskı Kalitesini AyarlaHatada Devam Et SonrakiActiveSheet.PageSetup.PrintQuality = 600Hata.TemizleHatada GoTo 0' Kullanıcıya nasıl gönderileceğini öğretinHatada RefLibError'a GitActiveSheet.ExportAsFixedFormat Tür:=xlTypePDF, Dosya Adı:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=TrueHatada GoTo 0' Eposta göndereylem = "SendEmail" iseHatada SaveOnly'e GitApplication.Dialogs(xlDialogSendMail).GösterHatada GoTo 0Sona GitMakroBitirSadece kaydet:MsgBox "Bu sayfanın bir kopyası başarıyla .pdf dosyası olarak kaydedildi: " & Chr(13) & Chr(13) & SvAs & _".pdf belgesini inceleyin. Belge iyi görünmüyorsa, yazdırma parametrelerinizi ayarlayın ve yeniden deneyin."Send_PDF = DoğruSona GitMakroRefLibError:MsgBox "PDF olarak kaydedilemedi. Referans kitaplığı bulunamadı."Send_PDF = YanlışEndMakro:Bitiş İşlevi |