エクセルを毎回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で販売しています。すぐに使いたい方はこちらを活用してください。


【さらにお得】効率化ツール全セット版も公開中!
Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。
複数使う予定の方は、こちらの方が圧倒的にお得です。

PDF自動作成マクロの動作と結果の紹介
このVBAをエクセルに組み込むと、どのような動きになるのかを解説します。基本的には、ワンクリックするだけで、エクセルの入っているフォルダにPDFが自動作成されます。
1. PDFにしたい範囲を印刷範囲に設定
PDFにしたい範囲を、印刷範囲として設定します。

2. VBAを実行
PDFにしたいエクセルファイルで、VBAを実行します。
ボタンを設置することで、ワンクリックで実行ができるようになります。

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

エクセルが保存されているフォルダに、PDFが自動作成されます。
PDFの名称は「エクセルファイル名_日付_連番」となり、同日に何度も実行しても、連番が更新されすべて保存されます。
VBAコードをエクセルに実装する簡単3ステップ
ここからは、実際にこの機能をエクセルへ実装する手順を解説します。
ステップ1:PDFにしたい印刷範囲を設定する
まずは、エクセル上でPDFとして出力する範囲を指定します。
このマクロでは印刷範囲がPDFになるので、印刷範囲の設定を行ってください。

ステップ2:VBAコードを標準モジュールに貼る
次に、先ほどのコードをエクセルに埋め込みます。
エクセルの「開発」タブから「Visual Basic」エディタを開きます。
「開発」を出す設定やコードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

ステップ3:ボタンにマクロを登録して実行する
エクセルのシート上に、図形機能を使って操作ボタンを作成します。先ほど貼り付けたマクロを選択してOKを押せば、設定は完了です。
詳細については下記サイトで、初期化ボタンの作成という形で紹介しているので、そちらを参照してください。

VBAはゼロから作らず完成品を使い倒そう
今回紹介したVBAを導入すれば、日々の保存作業が劇的にラクになります。当サイトの議事録フォーマットと組み合わせるのも非常におすすめです。会議終了と同時に、完璧な状態のPDF議事録を自動で残せるようになります。
業務効率化を素早く進めるコツは、VBAをイチから勉強しないことです。まずは動くコードをコピペして、自分の環境で実際に使ってみましょう。面倒な手作業を最速で終わらせるノウハウは、私の書籍でも解説しています。
「Excel VBAは”ゼロ”から作るな」という書籍を出版しております。Kindle Unlimitedなら0円で読めますので、ぜひチェックしてみてください。日々のルーティン業務から解放され、より価値のある仕事に集中しましょう。



コメント