【コピペでOK】ワンクリックでPDF自動保存!連番付きファイルを一発作成するVBA

コピペで使えるコード集

エクセルを毎回PDFで保存しなおすのが面倒…
ルーチン的なPDF作成作業を効率化したい!

エクセルをPDF化する作業は、実務で頻繁に発生します。議事録や価格表などを残す際、PDF保存は欠かせません。しかし、毎回メニューから保存設定をするのは結構手間がかかる作業です。

今回は、ボタン一つでPDFを作成するVBAを紹介します。印刷画面を出さず、連番付きで自動保存できるマクロです。

コピペするだけで、すぐに業務の効率化ができる形になっていますので、ぜひコードを参考にしてみてください。

コピペで使えるPDF自動保存のVBAコード

早速ですが、実務でそのまま使えるVBAコードを紹介します。以下のコードをコピーして、ご自身のエクセルに貼り付けてください。

詳しい使い方は、後ほど紹介します。

Sub SaveSheetAsPDF()
    Dim ws As Worksheet
    Dim folderPath As String
    Dim baseName As String
    Dim dateStr As String
    Dim fullPath As String
    Dim branchNo As Integer
    
    ' 対象シートを現在開いているシートとする
    Set ws = ActiveSheet
    
    ' 保存先をこのExcelブックと同じフォルダにする
    folderPath = ThisWorkbook.Path & "\"
    
    ' ブック名から拡張子を取り除いた名前を取得
    baseName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
    
    ' 本日の日付(例: 20260519)
    dateStr = Format(Date, "yyyymmdd")
    
    ' 枝番の初期設定
    branchNo = 1
    
    ' 保存するフルパスの候補を作成
    fullPath = folderPath & baseName & "_" & dateStr & "_" & Format(branchNo, "00") & ".pdf"
    
    ' フォルダ内に同名ファイルがあれば枝番を増やす
    Do While Dir(fullPath) <> ""
        branchNo = branchNo + 1
        fullPath = folderPath & baseName & "_" & dateStr & "_" & Format(branchNo, "00") & ".pdf"
    Loop
    
    ' PDFとしてエクスポート
    ws.ExportAsFixedFormat Type:=xlTypePDF, _
                           Filename:=fullPath, _
                           Quality:=xlQualityStandard, _
                           IncludeDocProperties:=True, _
                           IgnorePrintAreas:=False, _
                           OpenAfterPublish:=True
                           
    ' 完了メッセージ
    MsgBox "PDFの作成が完了しました。" & vbCrLf & fullPath, vbInformation, "完了"

End Sub

【番外】すぐ使えるエクセルファイル

VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にフォルダが自動作成できます。

エクセルファイルはNoteで販売しています。すぐに使いたい方はこちらを活用してください。

▼ すぐに使えるエクセルファイルはこちら

【プレビュー】【Excelツール】ワンクリックでPDF自動保存!連番付きファイル一発作成|すぐに使える完成版ダウンロード|犬井 | 効率化大全|note
エクセルを毎回PDF化して保存するのが面倒…PDF化するルーチン作業を自動化したい!エクセルをPDF化する作業は、実務で頻繁に発生します。議事録や価格表などを残す際、PDF保存は欠かせません。しかし、毎回メニューから保存設定をするのは結構手…

【さらにお得】効率化ツール全セット版も公開中!

Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。

複数使う予定の方は、こちらの方が圧倒的にお得です。

▼ 効率化ツール全セットはこちら

【DLで使える!】Excel・Outlookの「単純作業」自動化ツール|犬井 | 効率化大全
※2025/1/7にエクセルファイル/CSVの統合ツールを追加しました! 購入いただいた方は、追加ツールは追加費用なしでダウンロード可能です! Outlookで、宛先と添付ファイルだけを変えた似たようなメールの作成『202501_請求書』の…

PDF自動作成マクロの動作と結果の紹介

このVBAをエクセルに組み込むと、どのような動きになるのかを解説します。基本的には、ワンクリックするだけで、エクセルの入っているフォルダにPDFが自動作成されます。

1. PDFにしたい範囲を印刷範囲に設定

PDFにしたい範囲を、印刷範囲として設定します。

2. VBAを実行

PDFにしたいエクセルファイルで、VBAを実行します。

ボタンを設置することで、ワンクリックで実行ができるようになります。

3. 同じフォルダに連番付きで保存

エクセルが保存されているフォルダに、PDFが自動作成されます。

PDFの名称は「エクセルファイル名_日付_連番」となり、同日に何度も実行しても、連番が更新されすべて保存されます。

VBAコードをエクセルに実装する簡単3ステップ

ここからは、実際にこの機能をエクセルへ実装する手順を解説します。

ステップ1:PDFにしたい印刷範囲を設定する

まずは、エクセル上でPDFとして出力する範囲を指定します。

このマクロでは印刷範囲がPDFになるので、印刷範囲の設定を行ってください。

ステップ2:VBAコードを標準モジュールに貼る

次に、先ほどのコードをエクセルに埋め込みます。

エクセルの「開発」タブから「Visual Basic」エディタを開きます。

「開発」を出す設定コードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

【10分で分かる!】VBAの基本をゼロから解説!環境設定・書き方・基本コードまとめ!
VBAが最低限読める・書けるようになる内容を10分で読める一つの記事で紹介!環境設定・変数・ループ・条件分岐まで、一通りの流れを解説!

ステップ3:ボタンにマクロを登録して実行する

エクセルのシート上に、図形機能を使って操作ボタンを作成します。先ほど貼り付けたマクロを選択してOKを押せば、設定は完了です。

詳細については下記サイトで、初期化ボタンの作成という形で紹介しているので、そちらを参照してください。

【コピペでOK】VBAで効率化!コピペでできる便利な追加機能4選!
VBAで足すだけで便利になる機能4選を紹介。コピペで簡単に効率化できるコードを、画像付きで徹底解説!

VBAはゼロから作らず完成品を使い倒そう

今回紹介したVBAを導入すれば、日々の保存作業が劇的にラクになります。当サイトの議事録フォーマットと組み合わせるのも非常におすすめです。会議終了と同時に、完璧な状態のPDF議事録を自動で残せるようになります。

業務効率化を素早く進めるコツは、VBAをイチから勉強しないことです。まずは動くコードをコピペして、自分の環境で実際に使ってみましょう。面倒な手作業を最速で終わらせるノウハウは、私の書籍でも解説しています。

「Excel VBAは”ゼロ”から作るな」という書籍を出版しております。Kindle Unlimitedなら0円で読めますので、ぜひチェックしてみてください。日々のルーティン業務から解放され、より価値のある仕事に集中しましょう。

コメント

タイトルとURLをコピーしました