ExcelをPDFで保存する方法【VBAで自動化】ページ範囲もOK

Excel便利ツール
タスク
タスク

今回のテーマは「ExcelをPDFで保存する方法【VBAで自動化】ページ範囲もOK」です!
ほんとはページ指定で印刷マクロを作りたかったんですが、この令和時代に印刷って今どき時代遅れかな?と思い・・・
ページ指定でPDF保存マクロを作りました!
リボンに常駐させておけばあっという間に変換完了な便利ツールです。
お試しサンプルフォーマットも用意していますので一緒に作っていきましょう!

この記事ではマクロ(VBA)を使用します。
マクロ初挑戦の方はこちらの記事からスタートすることをお勧めします。
Excelのマクロ初期設定ガイド

タスク
タスク

今日のお品書きはこちら👇

1. マクロ:コード全文紹介
2. はじめに:こんな人に使ってほしい!
3. 便利に使うコツ:リボンに登録しよう
4. まとめ:これで作業効率爆上がり!

便利ツールの時は毎回一緒だな💦
じゃあジッピー、華々しく登場してちょうだい!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

まっかせときなタスク〜!🌟
今回は「印刷をやめて、PDFでスマートに保存しよ!」ってテーマやから、ジッピーも気合バッチリやで〜🔥📄


🎙️ ジッピーの登場コメント

ジッピー(ChatGPT)
ジッピー(ChatGPT)

どうもどうも〜!
Excel界の便利屋ジッピーでございます〜!✨
今回お届けするのは……
📢 「ページ範囲を指定してPDFに一発保存できる」
超・実用派のExcelマクロです!
「この3ページだけPDFで送りたいんやけど!」
「出力したPDFが毎回上書きされて困るんやけど!」
──そんなモヤモヤに、ズバッと1本解決!
重複ファイル名自動調整付きの安心設計で、初心者さんも使いやすくなってます😎
ではでは、お品書きの順にじっくり見ていきましょう〜!


タスク
タスク

おぉ~~華々しいねぇ
じゃあジッピー、さっそく「1.マクロ:コード全文紹介」お願いできるかな?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

いっちょ任されました〜!タスク、いくでぇ!🔥

🧠 1.マクロ:コード全文紹介

ジッピー(ChatGPT)
ジッピー(ChatGPT)

今回は「ページ範囲を指定してPDFに保存しつつ、
ファイル名の重複も自動で避けてくれる」超気配りマクロやで〜!
以下がその全貌です👇✨

Sub ページ指定でPDF保存_重複回避()
Dim StartPage As Variant
Dim EndPage As Variant
Dim FilePath As String
Dim BaseName As String
Dim i As Integer

' ▼ 開始ページの入力を求める
StartPage = InputBox("PDFにする開始ページ番号を入力してください", "ページ範囲指定", 1)
If Not IsNumeric(StartPage) Then Exit Sub ' 数字以外なら中断

' ▼ 終了ページの入力を求める
EndPage = InputBox("PDFにする終了ページ番号を入力してください", "ページ範囲指定", StartPage)
If Not IsNumeric(EndPage) Then Exit Sub

' ▼ 入力値の妥当性をチェック(1以上であること)
If Val(StartPage) <= 0 Or Val(EndPage) <= 0 Then
MsgBox "1以上の数字を入力してください", vbExclamation
Exit Sub
End If

' ▼ 開始ページが終了ページより大きい場合は中止
If Val(StartPage) > Val(EndPage) Then
MsgBox "開始ページは終了ページより小さくしてください", vbExclamation
Exit Sub
End If

' ▼ デスクトップに保存する初期パスを決定
BaseName = "出力ファイル"
FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & BaseName & ".pdf"
i = 1

' ▼ 同じ名前のファイルがあれば「(1)」「(2)」と自動で付ける
Do While Dir(FilePath) <> ""
FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & _
BaseName & " (" & i & ").pdf"
i = i + 1
Loop

' ▼ PDFとしてエクスポート(保存&自動で開く)
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=FilePath, _
From:=Val(StartPage), _
To:=Val(EndPage), _
OpenAfterPublish:=True

' ▼ 保存完了メッセージ表示
MsgBox "PDFを保存しました!" & vbCrLf & FilePath, vbInformation
End Sub

💡ポイント解説

  • InputBoxでページ範囲を指定できるから、毎回柔軟に対応!
  • 数値チェックや入力ミス対策もバッチリ
  • ファイル名が重複しないよう (1)(2)を自動でつけるやさしさ設計
  • PDF保存後は自動で開くから確認もラクちん!

このマクロを1本持っとくだけで、
📄「印刷せずにPDF出力してメールで送る」
📄「毎回同じ資料を保存しておきたい」
📄「デスクトップが上書きでカオスにならない」

──そんなあらゆる状況を助けてくれる、まさに現代のスマート印刷術!


タスク
タスク

ジッピー、ありがとう
マクロを試してみるね
こんな見積書を並べただけですが、エクセルのシートに4ページ用意しました。


タスク
タスク

先ほどのコードをModule1に追加して実行ボタンを押してみます。


タスク
タスク

ページ範囲指定のインプットボックスが出てくるのでとりあえず2ページ目を指定してみます。


タスク
タスク

OKを押すと終了ページ指定のインプットボックスが出てくるのでここでは4ページ目を選択してみます。
そしてOKボタン👇


タスク
タスク

すると、PDFを保存しましたのメッセージとともにPDFのソフトが立ち上がりました。(わかりやすくる為に小さく表示させています)
結果は成功ですね!


タスク
タスク

保存先はデスクトップで出力ファイル.pdfというファイル名で保存されました。
そのままもう一度試してみると出力ファイル(1).pdfで保存され上書きされないようになっています。


タスク
タスク

ジッピー、OK大成功やで!
次、「2.はじめに:こんな人に使ってほしい!」にいこう!


ジッピー(ChatGPT)
ジッピー(ChatGPT)

バッチリやタスク!
図解のおかげで読者さんも**「なるほど、こう動くのか!」**ってスッと理解できるはずやで!
めっちゃいい感じの流れやから、この調子で「2.はじめに:こんな人に使ってほしい!」も盛り上げていこか✨


🧑‍🏫 2.はじめに:こんな人に使ってほしい!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

このツールはこんなあなたにピッタリです👇


✅ 印刷せずにPDFで保存したい!

  • 「とりあえず印刷してスキャンしてPDF化」はもう卒業。
  • データで管理して共有したい人に超おすすめ!

✅ 毎回同じページだけPDFにしたい!

  • 見積書の2〜4ページ目だけ出力したい…
  • 頻繁に使うページだけを手軽にPDF化できる!

✅ ファイルの上書きミスに困ってる人!

  • 毎回同じ「出力ファイル.pdf」が上書きされてしまう…
  • このマクロなら**(1)(2)…と自動リネーム**してくれるから超安心!

✅ エクセルが苦手な後輩にもボタン一発で使わせたい!

  • InputBoxで聞いてくれるから操作も簡単!
  • マクロをボタンに登録しておけば誰でも使える仕組みに!

📌 一言でいうと…

手動操作の面倒くささ
ファイル保存のうっかり事故
ぜ〜んぶ自動でやってくれるやさしさ設計✨


タスク
タスク

そだねぇ~
世はもうデジタル時代だもんね
それでもなかなかペーパーレスにはならないよね 💦なんでなんだ❓

次の「3.便利に使うコツ:リボンに登録しよう」いっとこ
図解も入れるからジッピーは簡単に説明しちゃって

ジッピー(ChatGPT)
ジッピー(ChatGPT)

うんうん、ほんまそれ。
「ペーパーレス化!」って声だけはデカいけど、なぜか紙が減らん不思議よね〜🧻笑


🧷 3.便利に使うコツ:リボンに登録しよう!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

このマクロをもっと便利に使うなら、
毎回Alt+F11→実行なんてやってられへん!
そう、リボンにボタンとして登録しとくのがオススメや!


やり方ざっくり3ステップ

  1. 【ファイル】→【オプション】→【リボンのユーザー設定】を開く
  2. 【マクロ】から該当マクロを選んで、右の好きなタブに追加
  3. 必要ならアイコンもカスタムして見やすく!

📌こうしとけば、Excel立ち上げたときに
リボンのボタンひとつでPDF保存できる!
後輩にも「これ押すだけやで」ってドヤれる😎


ジッピー(ChatGPT)
ジッピー(ChatGPT)

あとはタスクが図解でわかりやす〜く仕上げてくれたら完璧や✨
スクショに「ここクリック!」って赤囲み入ってるだけでも一気に理解度上がるで!


タスク
タスク

ジッピー、説明サンキュー!

では図解いきます
まずお約束の(PERSONAL.XLSB)のModule1に先ほどのコードを貼り付けます


タスク
タスク

次は、リボンのユーザー設定を開いてコマンド選択をマクロに切り替えたら先ほどのページ指定でPDF保存を選択
ん~~印刷のグループにしようかな
選んで追加ボタン!


タスク
タスク

そして、名前が長いので短く編集してOK


タスク
タスク

すると神マクロシリーズの仲間入りができました!
これでいつでもどこでもこのマクロが使えるようになりました


タスク
タスク

ここでも👇くわしくリボン登録を説明していますので参考にしてください

※ 詳しくはリボン登録の記事こちら👇
【切り抜き】マクロをリボンに追加しよう!


タスク
タスク

ジッピー、こんな感じかなぁ?
じゃあ最後「4.まとめ:これで作業効率爆上がり!」で締めちゃおう!


ジッピー(ChatGPT)
ジッピー(ChatGPT)

おぉ〜〜〜完ッ璧やタスク!👏✨
図解と説明がビシッと決まってて、これ読んだ人「これ使わな損やん…」ってなること間違いなしやで!


🧾 4.まとめ:これで作業効率爆上がり!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

紙で印刷するのが当たり前だった時代から、
今やPDFでスマートにやり取りするのがビジネスの新常識!

このマクロを使えば…

  • 📄 ページ範囲を選んでPDF保存できる!
  • 💾 ファイル名が自動で重複回避される!
  • 🎯 リボンにボタン登録で誰でも簡単操作!

✨もう「印刷してスキャンしてメールに添付」なんて面倒なこと、
明日からはこの1クリックPDFマクロで全部解決や!!


ジッピー(ChatGPT)
ジッピー(ChatGPT)

神マクロシリーズにふさわしい超便利ツール、
ぜひあなたのExcelライフにも取り入れてみてくださいね!🌈

コメント

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