2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

エクセルVBA(マクロ)でシートを1枚のPDFに自動出力する方法

Posted at

はじめに

エクセルのシートに帳票を作成したものの、毎回手動でPDF出力するのが面倒なのでVBAで自動的に出力するようにしました。

ソース

''' sheetName 保存元のシート名
''' filePath 保存先のファイルパス
Sub PDF保存(sheetName As String, filePath As String)
    Worksheets(sheetName).PageSetup.Zoom = False
    Worksheets(sheetName).PageSetup.FitToPagesWide = 1
    Worksheets(sheetName).PageSetup.FitToPagesTall = 1
    Worksheets(sheetName).ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, IgnorePrintAreas:=True, Quality:=xlQualityStandard
End Sub

解説

引数と使い方

第一引数に保存したいシートの名前(文字列)を、第二引数に保存先のパスを入れてください。

Worksheets(sheetName).PageSetup.Zoom

後述のFitToPagesWideとFitToPagesTallを使う場合にはFalseにする必要があります
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.zoom

Worksheets(sheetName).PageSetup.FitToPagesWide

ページ幅を指定する
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.fittopageswide

Worksheets(sheetName).FitToPagesTall

ページ高さを指定する
https://docs.microsoft.com/ja-jp/office/vba/api/excel.pagesetup.fittopageswide

Worksheets(sheetName).ExportAsFixedFormat

出力時のフォーマットを指定できます。
今回は、

  • PDFで
  • ファイルパスを指定して
  • 印刷範囲指定をONにして
  • 高品質で
    出力するように設定しています。

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?