だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

Excel VBAでpdfにワークシートを保存する方法

Excel VBAでPDF形式の保存をする際は、Workbook、Worksheet、Rangeなどのオブジェクトに対し、ExportAsFixedFormatメソッドを実行すればOKです。

ソースコード

Public Sub test()

  Dim outDir As String

  outDir = C:\test.pdf"
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=outDir

End Sub

上記のコードでは、アクティブなシートを「test.pdf」と命名して、pdf保存しています。

ページ設定をする

印刷時のページ設定を行うには、PageSetupオブジェクトを使います。PageSetupオブジェクトを用いることで、印刷の向きや、各種余白、用紙サイズなど、すべての印刷設定を指定することができます。

印刷の向きを横に設定したコードは下記の通り。Withを使うと、コンパクトなコードで表記することができます。

Public Sub test2()

  Dim outDir As String

  outDir = C:\test.pdf"

  With ActiveSheet.PageSetup
   .PageSetup.Orientation = xlLandscape
   .PrintOut
  End With

  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=outDir

End Sub

他にも、様々な指定ができますので、細かい指定をしたい方は下記リンクを参照してみてください。

▼PageSetupオブジェクトのメンバー一覧
https://msdn.microsoft.com/ja-jp/library/office/ff841253.aspx

ページ上部に戻る