VBAで業務を自動化!日報・請求書を1クリックで作成する方法

アイキャッチ画像 PDF化

はじめに

毎日の「日報」や「請求書」の作成、面倒に感じていませんか?

定型フォーマットに情報を転記し、印刷してPDF化して、名前をつけて保存…
この作業、1件だけならいいですが、毎日・複数人分となると手間がかかりますよね。

実はこれ、VBA(Excelマクロ)を使えば、たった1クリックで完了できます。
私はこのマクロを使うことで、1日あたり30分以上の作業時間を削減しました。

今回は、そんな便利な日報・請求書自動化マクロのテンプレートとコードを紹介します!

このページでわかること

  • Excel VBAで日報や請求書を自動作成する方法
  • 実際のサンプルコード&テンプレート配布
  • よくあるトラブル・カスタマイズ方法の解説

業務自動化のメリットとは?

手作業からVBAに切り替えることで、以下のメリットが得られます。

時間の短縮
→ 毎日10分の作業が、ボタン1つで即完了します。

ミスの削減
→ 転記ミスや計算間違いを防げるので、チェック工数も減らせます。

提出スピードUPで評価が上がる
→ 上司やクライアントからの信頼もUP!

こんにちは、らくだです

VBAを独学で学び、VBAを仕事に多く取り入れてます


仕事に使っているExcelファイルにVBA・マクロを組込むことで

毎日5分掛ってた作業が3秒で終わり、月に1度3時間かかっていた作業が30分で終わるようになりました

浮いた作業時間を年間で計算すると620時間、1日8時間労働で計算すると77.5日分の作業時間を削減したことになります

仕事の処理量を増やしつつも、仕事に余裕が生まれ


余裕があるからミスも減り、新しい提案を考える余裕も生まれました

自動化の流れ(基本構成)

以下のような手順でVBAを組みます。

Option Explicit

Sub CreateAndExportInvoicePDF()
    '--- 変数宣言 ---
    Dim wsInput As Worksheet
    Dim wsTemplate As Worksheet
    Dim customerName As String
    Dim invoiceDate As String
    Dim savePath As String
    Dim fileName As String
    Dim pdfFullPath As String

    '--- シート設定 ---
    Set wsInput = ThisWorkbook.Sheets("見積書")
    Set wsTemplate = ThisWorkbook.Sheets("請求書")

    '--- データ取得 ---
    customerName = wsInput.Range("B8").Value ' 顧客名
    invoiceDate = wsInput.Range("O1").Value ' 請求日

    If customerName = "" Or invoiceDate = "" Then
        MsgBox "顧客名と請求日を入力してください。", vbExclamation
        Exit Sub
    End If

    '--- テンプレートへ転記 ---
    With wsTemplate
        .Range("B8").Value = customerName
        .Range("O1").Value = invoiceDate
        ' 必要に応じて他の項目も追加
    End With

    '--- 保存先フォルダの作成 ---
    savePath = ThisWorkbook.Path & "\請求書PDF\"
    If Dir(savePath, vbDirectory) = "" Then
        MkDir savePath
    End If

    '--- ファイル名作成 ---
    invoiceDate = Replace(invoiceDate, "/", "")
    fileName = "請求書_" & customerName & "_" & invoiceDate & ".pdf"
    pdfFullPath = savePath & fileName

    '--- PDFとしてエクスポート ---
    With wsTemplate
        .PageSetup.Orientation = xlPortrait
        .PageSetup.Zoom = False
        .PageSetup.FitToPagesWide = 1
        .PageSetup.FitToPagesTall = 1
        .ExportAsFixedFormat Type:=xlTypePDF, fileName:=pdfFullPath, Quality:=xlQualityStandard
    End With

    '--- 完了メッセージ ---
    MsgBox "請求書をPDF保存しました:" & vbCrLf & pdfFullPath, vbInformation
End Sub

このマクロの特長

機能説明
転記入力フォームからテンプレートに自動転記
PDF保存1クリックでPDF形式で保存(印刷不要)
フォルダ自動生成指定フォルダがなければ作成
ファイル名自動化請求書_顧客名_日付.pdf の形式で保存

シート構成

  • 見積書 シート
    • B8: 顧客名
    • O1: 請求
  • 請求書 シート
    • 印刷整形された雛形(見積書・請求書フォーマット)

テンプレートの紹介

こちらが実際のテンプレート例です👇


有料版との比較(表)

機能無料版有料版(500円)
入力データの転記
ファイル名の自動設定
PDF保存
セル保護・エラーチェック
デザイン調整・部署別出力○(要相談)

よくあるカスタマイズ例

  • 担当者ごとに出力フォルダを分けたい
  • 土日・祝日の色付けを自動化したい
  • 複数の請求書を一括出力したい

なども対応可能です。
お問い合わせフォームからご相談いただけます!


トラブルQ&A

よくある質問回答
セキュリティ警告が出ますマクロ有効化が必要です。「マクロを有効にする」をクリックしてください。
Macでも使えますか?基本的にはWindows+Excel推奨です。Macは一部非対応あり。
ファイルが保存されないフォルダの権限やパスを再確認してください。

おすすめのVBA学習教材

📘 書籍:できるExcel VBAプログラミング入門 仕事がサクサク進む自動化プログラムが作れる本

  1. 初心者にわかりやすい構成
     2部構成で、基礎から実用レベルまで自然とステップアップできる構成です。例題中心なので、実務に即使える内容なのも魅力。
  2. 実務自動化に強い内容
     タイトル通り「仕事がサクサク進む自動化プログラム」がテーマ。請求書や勤怠管理など、現場のルーチン作業を一発で効率化できる実践コードが満載です
  3. 紙&電子書籍版あり
     電子版も提供されており、PC・タブレット・スマホでの学習が可能です。

まとめ

「毎日やってるけど、実は自動化できる業務」って、たくさんあります。
VBAを使えば、ルーチン業務が一気にラクになります。

今回のテンプレートでその第一歩を踏み出してみてください。

👉 より高度な自動化をしたい方は、有料テンプレートカスタマイズ相談も受付中です!


コメント

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