【VBA】開いている全ブックをエラー処理付きでPDF保存する方法
日々の業務で大量のExcelファイルを扱っていると、個別に印刷やPDF保存を行うのは労力がかかります。この記事では、開いているすべてのワークブックを一括でPDF形式で保存できるVBAマクロを作成します。エラー処理も追加することで、安定した動作が期待できます。
サンプルコード
VBA
Option Explicit
Sub SaveAllBooksAsPDF()
Dim wb As Workbook, ws As Worksheet
Dim savePath As String
Dim i As Integer
' フォルダ選択ダイアログを開く
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "保存先フォルダを選択してください"
If .Show = -1 Then savePath = .SelectedItems(1) & "\"
End With
' エラー処理を有効にする
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
For Each wb In Workbooks
If Not wb.Name Like "*.xls*" Then Exit Sub ' Excel以外のファイルは除外
wb.Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath & wb.Name & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next wb
Application.ScreenUpdating = True
MsgBox "全ブックをPDF保存しました。", vbInformation
Exit Sub
ErrorHandler:
MsgBox Err.Description & vbCrLf & "エラーが発生しました。", vbCritical
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。また、ワークブックに問題がないかもチェックしましょう。