EXCEL VBA シート・ブックをPDFに出力・変換・一括(PDF・XPS)「ExportAsFixedFormatメゾット」
EXCEL VBA シート・ブックをPDFに出力・変換・一括(PDF・XPS)「ExportAsFixedFormatメゾット」
【EXCELデータのブックまたは、シートをPDF・XPS形式に出力する時に使用します】
ExportAsFixedFormat(Type,FileName,Quality,includedocproperties,
ignoreprintareas, From,To,openafterpublish,FixedFormatExtClassPtr)
①使用例:ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=”c:\ファイル名.pdf”
※アクティブシートをPDFファイルに出力
②使用例:ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=”c:\ファイル名.pdf”,From:=2,To:=6
※アクティブシートの2ページから6ページをPDFファイルに出力
パラメーター | データ型 | 説明(定数) | 使用例 |
---|---|---|---|
Type | XlFixedFormatType | xlTypePDF (PDFファイル)または、Xltypexps(Xpsファイル)を指定します。 | Type:=xlTypePDF |
FileName | Variant | ファイル名または、パスを含めたファイル名を設定します。パスを指定しない場合は、カレントフォルダーを指定します。 | Filename:="c:\ファイル名.pdf", |
Quality | Variant | ファイルの品質をしてします。xlQualityStandard(標準品質) xlQualityMinimum (最小限品質) | Quality:= xlQualityStandard |
IncludeDocProperties | Variant | ファイルに文書のプロパティを含めるか指定します。 True(含める) False(含めない) | IncludeDocProperties:=True |
IgnorePrintAreas | Variant | 設定している員サル領域を無視するかしてします。 True(無視する) False(無視しない) | IgnorePrintAreas:=False |
From | Variant | 変換する開始ページを指定します。省略で先頭のページから | From:=3 |
To | Variant | 変換する終了ページを指定します。省略で最後のページまで | To:=10 |
EXCEL(エクセル)ファイルをPDF/XPSへ変換
下記のサンプルプログラムは、EXCELファイルをPDF/XPSへ変換するプログラムです。実行後、出力する種類の選択を行います。(0:PDF・1:XPS)を選択すると該当するファイルに出力する事ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Sub EXCELファイルPDF化01() 'PDF .XPS選択 Dim OutputSelect As Integer Dim OutputType As Variant Dim ExcelFilePath As String OutputSelect = Application.InputBox(Prompt:="出力種類選択", Title:="PDF:0 XPS :1 出力選択", Default:="0", Left:=100, Top:=200, Type:=1) '変換する出力選択を行います。0:PDF・1:XPSへ変換 Select Case OutputSelect Case Is = 0 OutputType = xlTypePDF '0を選択するとPDF変換 Case Is = 1 OutputType = xlTypeXPS '1を選択するとXPS変換 Case Else MsgBox "出力種類選択が間違っています" Exit Sub 'プログラム終了 End Select ExcelFilePath = "C:\Users\User\Desktop\ExceL" 'PDFファイルを保存するパス ※環境により変更が必要 ActiveWorkbook.ExportAsFixedFormat Type:=OutputType, FileName:=ExcelFilePath '選択された出力種類に変換 If OutputSelect = 0 Then MsgBox "PDFファイルに変換しました" Else MsgBox "XPSファイルに変換しました" End If End Sub |
(画面クリックして拡大)
EXCEL(エクセル)ファイルをページ指定してPDFファイルに変換
下記のサンプルプログラムは、変換するPDFファイルのページ範囲を指定してPDFファイルを作成するプログラムです。実行をPDF化するEXCELファイル先頭ページ番号を最終ページ番号を入力して、指定されたページ範囲でPDFファイルが作成されます。なお、入力されたページ番号については、正式な範囲内のみ実行されるようにチェック機能を追加しています。
※下図は、EXCELシートに月ごとに1~12月のデータが12ページ分あります。(下表は一部)の1~12の間のページ番号を指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub EXCELファイルPDF化02() 'ページ範囲の一括変換 Dim StartPage, EndPage, MaxPage As Variant Dim ExcelFilePath As String MaxPage = ActiveSheet.PageSetup.Pages.Count '最終ページ番号を取得(最大ページ番号) StartPage = Application.InputBox(Prompt:="先頭ページ番号", Title:="ページ選択範囲", Default:="1", Left:=100, Top:=200, Type:=1) '先頭ページ番号を入力 EndPage = Application.InputBox(Prompt:="最終ページ番号", Title:="ページ選択範囲", Default:="12", Left:=100, Top:=200, Type:=1) '最終ページを入力 If MaxPage < EndPage Or StartPage > EndPage Then '入力したページの範囲を確認します。 MsgBox "ページの設定範囲が誤っています。" Exit Sub 'プログラム終了 Else ExcelFilePath = "C:\Users\User\Desktop\ExceL" 'PDFファイルを保存するパス ※環境により変更が必要 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ExcelFilePath, From:=StartPage, To:=EndPage '指定したページをPDFへ変換(出力)します。 MsgBox StartPage & "~" & EndPage & "ページまでPDFへ変換しました。" End If End Sub |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。