【Excel VBA】Excel保存時にPDFも同時に保存するマクロ

Excel VBA 保存する時にPDFも一緒に保存するマクロ

Excelを保存する時に、必ずPDFファイルを保存したいことがありますよね。

そんなときのために、Excel保存時にPDFも同時に保存するマクロを作成しました。また、保存したPDFファイル名には、日付をつけることでいつのファイルなのか分かるようにしてあります!

作成までの手順は以下になります。

おおまかな手順

  • Excel保存時にPDFも保存するマクロを作る
  • Excelで保存したときにイベントを発動し、上のマクロを呼び出す

VBAでマクロを作るための準備

Module1を追加する

標準モジュールにModule1を追加します。

【VBAProjectを右クリック】→ 【挿入】 → 【標準モジュール】をクリックします。

そもそもこの画面なに?という方は、以下の記事でVBAを書き始める準備の方法をまとめているのでご覧ください。

Excel VBA マクロの作り方【Excel VBA】Excelマクロの始め方 ~簡単なサンプル付き~

Excel VBA: Excel保存時にPDFも保存するマクロ

1. VBAのソースコードを書く

Module1を追加したら、以下のソースコードをコピぺしましょう。処理内容はソースのコメントに書いてあります。

たけのこ
右上の”copy”をクリックしたらソースをコピーできますよ!

copy

' 開いているExcelファイルを、PDFファイルとして保存する
Public Sub SavePDF()

    Dim fileName, saveFileName As Variant
    
    ' 開いているExcelファイルを"."で分割する
    fileName = Split(ThisWorkbook.Name, ".")
    
    ' 保存場所 :マクロの保存場所と同じ
    ' ファイル名:マクロのファイル名 + 年月日時分秒
    saveFileName = ThisWorkbook.Path & "\" & fileName(0) & "_" & Format(Now, "yyyymmddhhmmss") & ".pdf"
    
    ' シートが空の場合PDF保存ができないため、空かどうかチェックする
    If Application.WorksheetFunction.CountA(ActiveSheet.UsedRange) = 0 Then
    
        MsgBox "シートが空のためPDF保存できません"
        
        Exit Sub
        
    End If
    
    ' アクティブなシートをPDFで保存する
    ActiveWorkbook.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        fileName:=saveFileName, _
        OpenAfterPublish:=True

End Sub

Module1にソースコードをコピーしたら、以下のような感じになります。

2. 保存したときのイベントにマクロを登録する

次に、Excelを保存するときに、上記で作ったマクロが実行されるようにします。

プロジェクトの中にある、【ThisWorkbook】をダブルクリックしましょう。

ThisWorkbookをダブルクリックする

次に、(General)と書いてあるプルダウンをクリックして、【Workbook】を選択しましょう。

GeneralからWorkbookをクリック

【Workbook】を選択すると、以下のようにWorkbook_Openが勝手に書かれますが、とりあえず無視してください。

右側のプルダウンをクリックして、【AfterSave】を選択しましょう。

すると、Workbook_AfterSaveが自動的に書かれます。

このなかに処理を書くと、保存したあとに処理が自動的に実行されるようになります。

また、今回はWorkbook_Open()は不要なので消しておきます(以下の図では消去済み)。

Workbook_AfterSaveの中で、上記で作成した”SavePDF”を呼び出しましょう。

【Call メソッド名】で処理を呼び出すことが出来ます。

3. 準備

シートに適当に文字を書きましょう。

ソースのコメントにも書いていますが、ExportAsFixedFormatメソッドは、シートが空だとエラーになってしまいます。

4. マクロを実行する

キーボードの【F5】を押す、または画面上部の【▶】を押して、マクロを実行します。

PDFはマクロが保存されている場所に作成されて、自動的にPDFが開かれます。

これで完了です!

1回数分の作業でも、何十回、何百回と繰り返すと、とんでもない時間になりますからね…。少しでも生産性の向上に役立てば幸いです!

 

↓ おすすめの書籍です!