piątek, 20 czerwca 2014

Export wybranych obszarów komórek do pliku PDF

Podstawowy sposób zapisania w formacie PDF obszarów komórek Excel opiera się na wykorzystaniu metody .ExportAsFixedFormat. Warto jednak wiedzieć, że metoda ta dostępna jest dla różnych obiektów na różnych poziomach hierarchii:

  • komórek- obiekt Range
  • arkusza- obiekt Worksheet
  • skoroszytu- obiekt Workbook

1. Obiekt Range udostępnia metodę wprost umożliwiając stworzenie instrukcji:

1Range("A1:G10").ExportAsFixedFormat xlTypePDF, "RangeToPDF.pdf"

Warto jednak pamiętać o możliwości wykorzystania innych metod definiowania obiektu Range. Poniższy przykład również jest prawidłowy lecz co ciekawe- każdy z obszarów wewnątrz instrukcji Union zostanie zapisany na osobnej stronie dokumentu PDF:

1Union(Range("A1:E5"), Range("a10:G20")). _
2      ExportAsFixedFormat xlTypePDF, "UnionToPDF.pdf"

Powyższa techniki nie zadziała oczywiście dla obszarów pochodzących z różnych arkuszy. W wariancie tym, co ważne, ignorowane są jednak obszary wydruku które są istotne przy eksporcie opisanym w punkcie 2 i 3 poniżej.

2. Obiekt Worksheet umożliwia wydrukowanie całego arkusza lub jego części ustawionej jako obszar wydruku:
1Sheets(1).ExportAsFixedFormat xlTypePDF, "SheetToPDF.pdf"

3. Obiekt Workbook również posiada metodę .ExportAsFixFormat a jej wykorzystanie spowoduje eksport wszystkich ustawionych obszarów wydruku lub całych arkuszy do pliku PDF:

1ThisWorkbook.ExportAsFixedFormat xlTypePDF, "WorkbookToPDF.pdf"

Co powinniśmy zrobić jeżeli chcemy wyeksportować do PDF różne obszary z różnych arkuszy? W takiej sytuacji musimy w pierwszym kroku ustawić obszary wydruku indywidualnie dla każdego arkusza wykorzystując poniższe dostępne techniki:
1ActiveSheet.PageSetup.PrintArea = "$B$5:$E$14"
2ActiveSheet.PageSetup.PrintArea = Range("B5:E14").Address

a następnie wywołać metodę eksportu dla skoroszytu.


Brak komentarzy:

Prześlij komentarz