ボタン一発で完了!保存・印刷・PDF出力の自動化テクニック

Level5 VBA・マクロ

マクロの真価は、自動で集計だけではありません。
その結果を「報告書」「請求書」「月次レポート」といった成果物として出力もできます。

実務では、集計が終わった後に以下の作業が待っています。

  • ファイルを最新版として保存する。
  • 印刷設定を確認して紙に印刷する。
  • 相手に送るためにPDFファイルを作成する。

これら一つ一つは簡単な手作業ですが、毎日繰り返すとなると大きな負担です。
今回は「アウトプット作業」をマクロに任せて、ボタン一発で完了させる方法を学びましょう。


ファイルの安全な「上書き保存」と「名前を付けて保存」

マクロにとって最も基本的な操作は、ファイルの保存です。

1. 上書き保存(最もシンプル)

開いているブック(ファイル)を、そのまま上書き保存します。

Saveメソッド(行動)を利用します。

(オブジェクト).Save

ThisWorkbook.Save
たんたん
たんたん

This Workbookはマクロが書かれたファイルのことだよ。

1つのシートに特定できるから、
マクロがどのファイルか悩まずないで保存ミスが起こらないんだ。

2. 名前を付けて保存(バックアップや新規作成)

「名前をつけて保存」にはSaveAsメソッド(行動)を利用します。

(オブジェクト).SaveAs “フルパス”

ファイル名に「日付」などを付けて、新しいファイルとして保存したい場合に役立ちます。

Sub 名前を付けて保存()
    ' ファイル名を変数に格納(今日の日付を付加)
    Dim fileName As String
    fileName = "月次報告書_" & Format(Date, "yyyymmdd") & ".xlsm"
    
    ' 指定したパス(フォルダ)に保存する
    ThisWorkbook.SaveAs "C:\report_data\" & fileName
End Sub
たんたん
たんたん

FormatはText関数と同じで文字列を整形するんだ。
今回でいえば、
「Date(今日の日付)を20251220(YYYYMMDD)へ整形」

当然ファイル名は文字列だから
「&」を使うと「.xlsm」とか付けれるよ!


紙に出力する「印刷」の自動化

印刷は、通常は印刷プレビューを開いて設定しますが、
マクロを使えば一瞬で紙に出力できます。

1. 特定のシートを印刷する

特定のシートの全ページを印刷します。

印刷にはPrintOutメソッドを利用します。

Worksheets("請求書").PrintOut

2. 印刷部数とページ数を指定する

部数やページ数を指定することで、無駄な印刷を防ぎます。

PrintOutメソッドで利用する3つのオプションは以下の通りです。

  • Copies:= 「何枚印刷するか」
  • From:= 「何ページ目から」
  • To:= 「何ページ目まで」
Worksheets("報告書").PrintOut _
    Copies:=3, _             ' 3部印刷する
    From:=1, To:=5           ' 1ページ目から5ページ目まで
たんたん
たんたん

オプションを暗記する必要はないよ!

こんなこともできるんだって知っておくだけ。
印刷範囲は事前にレイアウトタブで設定すればいいし!


実務で最も使う「PDF出力」の自動化

取引先や上司への報告は、Excelファイルのままではなく、PDFファイルにすることがほとんどです。これもマクロを使えば一瞬でできます。

PDF出力は、Excelの機能を使うため、コードが少し長くなります。
このコードをそのまま使い、適宜修正しましょう。

Sub PDFを自動作成()
    ' 1. 保存するフォルダのパスとファイル名を定義
    Dim pdfPath As String
    pdfPath = "C:\report_data\今月の集計.pdf"

    ' 2. 特定のシートをPDFとして出力する命令
    Worksheets("集計").ExportAsFixedFormat _
        Type:=xlTypePDF, _               ' ファイル形式はPDF
        Filename:=pdfPath, _             ' 保存する場所とファイル名
        Quality:=xlQualityStandard, _    ' 標準品質で出力
        IncludeDocProperties:=True, _    ' ドキュメント情報を含める
        IgnorePrintAreas:=False          ' 印刷範囲を無視しない
End Sub
たんたん
たんたん

PDF変換はよく使うよね。
このコードは長いから、手作業で済ませるのも1つの手段だよ。

暗記せずに「PDF変換したいときは、あのコードを引用しよう」って
割り切ることも大切!


今回のクエストを終えて

  • 上書き保存は ThisWorkbook.Save で一発。
  • 名前を付けて保存は ThisWorkbook.SaveAs で、日付などをファイル名に付加できる。
  • 印刷は Worksheets("名前").PrintOut で設定いらず。
  • PDF出力は サンプルコードを利用する前提

これで、「データ収集からレポート出力まで」
マクロがすべてのデスクワークを完了させられるようになりました。

コメント

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