【ExcelVBA】別ワークブック操作して全シートを1シートずつPDF形式で保存する

EXCELマクロで指定したエクセルファイルを
PDF形式で保存する方法をメモします。

ExcelVBAで別ワークブック操作し、全シートをPDF形式で保存するコード

(難しくみえてしまわないよう…極力コードを減らして記述してます。)

Dim c As Integer
Dim wb As Workbook '変数型をWorkbookで宣言
'別ワークブックを開く
Set wb = Workbooks.Open(●フルパスエクセル名●)

for c = 1 to Worksheets.Count '全シートを繰り返し処理
 ' EXCELをPDF形式で保存 (マクロのフォルダに元のシート名のままで保存する場合)
 wb.Worksheets(Sheets(c).Name).ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Sheets(c).Name
Next

'別ワークブックを閉じる(保存しない)
Call wb.Close(SaveChanges:=False)

赤字 は直接入力や変数やマクロ内にシート名でファイルのフルパスを指定する
PDF形式にしたくないシートがある場合は、For の中に以下のような条件をいれる
If Sheets(c).Cells(1, 1) = "●●●一覧表" Then 'セルA1に特定の文字列を含むシートのみ
If Not Sheets(c).Name Like "*_マスタ" Then ’例だと「_マスタ」で終わるシートは含めない
もしシートそれぞれPDFファイル名まで指定する場合はFilenameのパスの続きにファイル名と.pdfまで入力する(シート1.pdf、シート2.pdfとできていく)
wb.Worksheets(Sheets(c).Name).ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "シート" & c &".pdf"

コメント