Přejít na hlavní obsah

Stáhněte si PDF pomocí VBA v Excelu

PDF (Portable Document Format) je formát dokumentu, který vám umožňuje ukládat text, obrázky a další informace v univerzální a snadno čitelné podobě. Je široce používán pro sdílení dokumentů a zajišťuje nezávislost na softwaru, operačním systému a zařízení. Možnost vytvářet a stahovat soubory PDF přímo z aplikace Excel pomocí aplikace VBA (Visual Basic for Applications) poskytuje uživateli výkonný nástroj pro automatizaci a zjednodušení pracovního postupu.

Vytváření a stahování souborů PDF pomocí aplikace VBA v Excelu umožňuje uživateli ukládat tabulky, grafy a další data jako snadno čitelný a sdílený dokument. VBA je programovací jazyk zabudovaný do aplikace Excel, který vám umožňuje automatizovat různé úkoly a procesy, včetně vytváření souborů PDF.

K vytvoření souboru PDF pomocí aplikace VBA v Excelu lze použít knihovny a programovací nástroje, jako je Adobe Acrobat, iTextSharp a další. Poskytují funkce pro vytváření a správu dokumentů PDF, včetně definování velikosti stránky, zpracování textu a obrázků, vytváření odkazů a dalších prvků. Pomocí VBA a těchto nástrojů můžete v Excelu vytvářet vlastní soubory PDF s různými funkcemi.

Příklad použití VBA k vytvoření a stažení souboru PDF v Excelu:





Sub SaveAsPDF()


'Zakázat zobrazení obrazovky


Application.ScreenUpdating = False


Dim ws As Worksheet


Dim rng As Range


'Vyberte pracovní list a rozsah pro uložení do PDF


Set ws = ThisWorkbook.Worksheets ("List1")


Set rng = ws.Range("A1:D10")


'Vytvořit a nakonfigurovat objekt PDF


Dim pdf As Object


Set pdf = CreateObject("AcroExch.PDDoc")


'Otevřít objekt PDF


pdf.Open


'Vytvořit stránku PDF s velikostí rozsahu


pdf.CreatePDDoc


pdf.PDDocMediaSize = 3


pdf.PDDocDefaultPageRotation = 0


pdf.PDDocDefaultPageWidth = rng.Width


pdf.PDDocDefaultPageHeight = rng.Height


'Přidat obsah rozsahu na stránku PDF


Dim gfx As Object


Set gfx = pdf.CreateGFX


Dim hdc As Long


hdc = gfx.GetHDC


rng.CopyPicture xlScreen, xlPicture


gfx.ReleaseHDC hdc


'Uložit soubor PDF


pdf.Save ("С:\Путь\к\файлу..pdf")


pdf.Close


'Povolit zobrazení obrazovky


Application.ScreenUpdating = True


End Sub

V tomto příkladu se VBA používá k vytvoření objektu PDF pomocí Adobe Acrobat, určení velikosti stránky a přidání obsahu vybraného rozsahu do vytvořeného souboru PDF. Soubor je poté uložen na zadané cestě v počítači.

Metody převodu Excelu do PDF pomocí VBA

1. Metoda využívající "exportní funkci". Tato metoda vám umožňuje exportovat celou aktivní knihu aplikace Excel do formátu PDF pomocí jediného kódu VBA. Příklad:

Sub ConvertExcelToPDF_Export()ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseEnd Sub

2. Metoda využívající "funkci ukládání". Tato metoda vám umožňuje vybrat rozsah buněk a uložit jej jako PDF pomocí kódu VBA. Příklad:

Sub ConvertExcelToPDF_SaveAs()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Лист1")ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseEnd Sub

3. Metoda využívající "funkci kopírování". Tato metoda vám umožňuje zkopírovat rozsah buněk a vložit jej do nového pracovního sešitu, který lze uložit jako PDF. Příklad:

Sub ConvertExcelToPDF_CopyPaste()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Лист1")ws.Range("A1:E10").CopyWorkbooks.AddActiveSheet.PasteApplication.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseActiveWorkbook.Close SaveChanges:=FalseEnd Sub

Vyberte nejvhodnější metodu konverze do formátu PDF pomocí VBA a budete pohodlně vytvářet soubory PDF přímo z Excelu.

Instalace a konfigurace VBA pro práci s PDF

Chcete-li pracovat s dokumenty PDF v Excelu pomocí VBA, musíte nainstalovat a nakonfigurovat více komponent. Nejprve se musíte ujistit, že váš počítač má nainstalovaný Adobe Acrobat nebo jiný program, který vám umožní pracovat se soubory PDF.

Po instalaci Adobe Acrobat, je třeba přidat odkaz na Acrobat do vašeho projektu VBA v Excelu. Postupujte podle pokynů:

  1. Otevřete Visual Basic Editor kliknutím Alt + F11 v Excelu.
  2. Vyberte z nabídky Tools bod References.
  3. V dialogovém okně, které se otevře, vyhledejte a zaškrtněte "Acrobat"nebo" Adobe Acrobat".
  4. Klepnutím na tlačítko" OK " použijete změny.

Jakmile je do projektu přidán odkaz na Acrobat, můžete pomocí VBA vytvářet, otevírat a ukládat soubory PDF přímo z Excelu.

Níže je uveden příklad jednoduchého postupu VBA pro vytvoření souboru PDF z aktivního listu aplikace Excel:

Sub SaveAsPDF()Dim ws As WorksheetDim pdfPath As StringSet ws = ActiveSheetpdfPath = "C:\Documents\output.pdf"ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPathEnd Sub

V tomto příkladu postup SaveAsPDF ukládá aktivní list aplikace Excel do souboru PDF po zadané cestě. Cestu k souboru lze upravit podle vašich požadavků.

Pomocí těchto pokynů nainstalujte a nakonfigurujte VBA pro práci s PDF v Excelu. Nyní můžete snadno vytvářet, otevírat a ukládat soubory PDF přímo z tabulky aplikace Excel.

Vytvoření makra ke stažení PDF v Excelu

K vytvoření takového makra je nutné použít jazyk VBA (Visual Basic for Applications) zabudovaný v Excelu. Zde je příklad jednoduchého makra, které stahuje soubor PDF z uvedeného odkazu:

Sub Скачать_PDF()Dim myURL As StringDim myPath As StringmyURL = "http://example.com/file.pdf" ' замените ссылку на нужнуюmyPath = "C:\Downloads\file.pdf" ' замените путь сохранения на нужный'загрузка файла PDFWith CreateObject("WinHttp.WinHttpRequest.5.1").Open "GET", myURL, False.sendIf .Status = 200 ThenSet oStream = CreateObject("ADODB.Stream")oStream.OpenoStream.Type = 1oStream.Write .responseBodyoStream.SaveToFile myPath, 2oStream.CloseEnd IfEnd WithEnd Sub

Chcete-li použít toto makro, otevřete Editor VBA kliknutím Alt + F11 v Excelu. Poté vložte výše uvedený kód do nového modulu.

Poté můžete změnit hodnoty proměnných myURL a myPath v kódu a zadat požadovaný odkaz na soubor a cestu k uložení.

Poté můžete vyvolat makro stisknutím Alt + F8 a výběrem ze seznamu dostupných Maker. Po provedení makra se soubor PDF stáhne z uvedeného odkazu a uloží se na zadanou cestu.

Toto je jednoduchý příklad makra pro stažení souborů PDF v Excelu. Po stažení souboru můžete rozšířit jeho funkčnost a přidat zpracování chyb nebo Další akce.

Příklady použití VBA ke stažení souborů PDF

Úvod:

VBA (Visual Basic for Applications) je programovací jazyk používaný v aplikacích Microsoft Office, včetně Excelu. V Excelu VBA můžeme využít jeho výkonné funkce k automatizaci různých úkolů, včetně stahování souborů z Internetu, včetně PDF.

1. Základní příklad:

Níže je uveden příklad kódu VBA, který ukazuje, jak stáhnout soubor PDF pomocí adresy URL:

Sub DownloadPDF()Dim URL As StringDim Filepath As StringURL = "https://www.example.com/example.pdf"Filepath = "C:\Downloads\example.pdf"' Создаем новый объект HTTPDim http As ObjectSet http = CreateObject("MSXML2.ServerXMLHTTP")' Отправляем GET запрос к URLhttp.Open "GET", URL, Falsehttp.send' Сохраняем полученный файлIf http.Status = 200 ThenWith CreateObject("Adodb.Stream").Type = 1.Open.Write http.responseBody.SaveToFile Filepath, 2.CloseEnd WithEnd If' Освобождаем ресурсыSet http = NothingEnd Sub

2. Stažení souboru s možnostmi:

Pokud Adresa URL obsahuje nastavení (například pro získání souboru s určitým nastavením), pak můžeme změnit hodnoty parametrů v kódu VBA. Níže je uveden příklad kódu, kde do adresy URL přidáváme možnost "format = A4" :

Sub DownloadPDFWithParams()Dim URL As StringDim Filepath As StringURL = "https://www.example.com/example.pdf?format=A4"Filepath = "C:\Downloads\example.pdf"' Остальной код остается неизменным' . End Sub

3. Stahování více souborů:

Můžeme také použít cykly v VBA ke stažení více souborů na různých adresách URL. Níže je uveden příklad kódu, který stáhne tři soubory:

Sub DownloadMultiplePDFs()Dim URLs As VariantDim Filepath As StringDim i As IntegerURLs = Array("https://www.example.com/example1.pdf", "https://www.example.com/example2.pdf", "https://www.example.com/example3.pdf")Filepath = "C:\Downloads\"For i = LBound(URLs) To UBound(URLs)' Остальной код остается неизменным' . Next iEnd Sub

Závěr:

Použití VBA v Excelu ke stažení souborů PDF může být velmi užitečné, zejména při automatizaci rutinních úkolů. Výše uvedené příklady ukazují základní schopnosti VBA stahovat soubory, ale můžete je přizpůsobit svým potřebám a požadavkům.