【事例】VBAで帳票作成を自動化

導入事例

【事例】VBAで帳票作成を自動化

Excel VBAで繰り返し作業を自動化し、大幅な時間削減を実現した事例を紹介します。

企業概要

業種 設備工事業
規模 従業員10名
所在地 地方都市
主な業務 電気設備工事、空調設備工事、保守点検業務

導入前の課題

課題1: 見積書作成の手間

状況

  • Excelで見積書を作成
  • 過去の見積書をコピーして修正
  • 計算ミス、転記ミスが発生
  • 1件あたり30分以上
【件数】
・月平均20件
・月10時間以上の作業

課題2: 請求書発行の負担

状況

  • 月末に請求書を一括作成
  • 工事台帳からデータを転記
  • 印刷、PDF化、メール送付
  • 担当者が丸半日かかる
【影響】
・月末の残業
・ミスによるやり直し
・他業務への影響

課題3: 報告書作成

状況

  • 点検報告書を手作業で作成
  • 写真の貼り付けが面倒
  • フォーマットがバラバラ
【影響】
・時間がかかる
・品質にバラつき

導入したソリューション

Excel VBA

選定理由

  • Excelは既に使用中
  • 追加費用がかからない
  • 既存の帳票を活用できる
  • 社内で保守可能

開発した機能

見積書自動作成

  • 品目マスタからの自動入力
  • 計算の自動化
  • PDF出力・保存

請求書一括発行

  • 工事台帳からデータ取得
  • 請求書を一括生成
  • PDF化・メール送付

報告書作成支援

  • テンプレート選択
  • 写真の自動配置
  • Excel/PDF出力

導入プロセス

ステップ1: 現状分析(1週間)

実施内容

  • 現在の作業フローを確認
  • 課題の洗い出し
  • 自動化ポイントの特定
  • 優先順位付け

ポイント

  • 実際の作業を観察
  • 担当者へのヒアリング

ステップ2: 開発(3週間)

実施内容

  • 見積書自動化(1週間)
  • 請求書一括発行(1週間)
  • 報告書作成支援(1週間)

ポイント

  • 既存フォーマットを活用
  • 段階的にリリース

ステップ3: テスト・調整(1週間)

実施内容

  • 実データでテスト
  • 不具合修正
  • 使い勝手の改善
  • マニュアル作成

ステップ4: 運用開始

実施内容

  • 全担当者への研修
  • 並行運用期間
  • 本格運用開始

具体的な機能

機能1: 見積書自動作成

VBA
' 見積書作成マクロ
Sub CreateEstimate()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("見積書")

    ' 品目マスタから単価を取得
    Dim itemName As String
    Dim unitPrice As Double
    itemName = ws.Range("B10").Value
    unitPrice = GetUnitPrice(itemName)
    ws.Range("D10").Value = unitPrice

    ' 合計計算
    CalculateTotal

    ' PDF出力
    ExportToPDF ws, CreateFileName()
End Sub

機能2: 請求書一括発行

VBA
' 請求書一括発行マクロ
Sub BatchInvoice()
    Dim dataWs As Worksheet
    Dim invoiceWs As Worksheet

    Set dataWs = ThisWorkbook.Sheets("工事台帳")
    Set invoiceWs = ThisWorkbook.Sheets("請求書")

    Dim lastRow As Long
    lastRow = dataWs.Cells(dataWs.Rows.Count, 1).End(xlUp).Row

    ' 各工事について請求書を作成
    For i = 2 To lastRow
        If dataWs.Cells(i, 10).Value = "請求対象" Then
            ' データを請求書にセット
            SetInvoiceData invoiceWs, dataWs, i

            ' PDF保存
            Dim fileName As String
            fileName = "請求書_" & dataWs.Cells(i, 1).Value & ".pdf"
            invoiceWs.ExportAsFixedFormat xlTypePDF, fileName
        End If
    Next i

    MsgBox "請求書の発行が完了しました"
End Sub

機能3: 報告書作成

VBA
' 報告書作成マクロ
Sub CreateReport()
    ' テンプレート選択
    Dim templateName As String
    templateName = InputBox("テンプレートを選択(1:点検、2:工事)")

    ' 写真フォルダ選択
    Dim photoFolder As String
    photoFolder = SelectFolder()

    ' 写真を自動配置
    InsertPhotos photoFolder

    ' PDF出力
    ExportReportToPDF
End Sub

導入効果

定量的効果

項目 導入前 導入後 削減率
見積書作成 30分/件 5分/件 83%
請求書発行 4時間/月 30分/月 88%
報告書作成 1時間/件 15分/件 75%

年間効果(概算)

時間削減

  • 見積書:約100時間/年(20件×25分×12ヶ月)
  • 請求書:約42時間/年(3.5時間×12ヶ月)
  • 報告書:約60時間/年(45分×80件)
  • 合計:約200時間/年

金額換算:200時間 × 2,500円 = 約50万円/年

投資対効果

開発費用 外部委託:15万円
年間効果 約50万円相当
回収期間 約4ヶ月

定性的効果

品質向上

  • 計算ミスゼロ
  • フォーマット統一
  • 転記ミス削減

働き方改善

  • 月末残業の解消
  • ストレス軽減
  • 本来業務に集中

顧客対応

  • 見積回答が早い
  • 請求書発行が正確

成功のポイント

ポイント1: 既存資産の活用

  • 現在のExcelフォーマットを使用
  • 業務フローの大きな変更なし
  • 学習コストを最小化

ポイント2: 段階的な開発

  • 効果の高いものから着手
  • 小さな成功を積み重ねる
  • フィードバックを反映

ポイント3: 現場の巻き込み

  • 担当者と一緒に設計
  • 使いやすさを重視
  • 要望を取り入れる

ポイント4: 保守体制

  • ソースコードをドキュメント化
  • 修正方法をマニュアル化
  • 社内でメンテナンス可能

技術的な工夫

エラーハンドリング

VBA
Sub RobustProcess()
    On Error GoTo ErrorHandler

    ' 処理内容
    ' ...

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description
    ' ログに記録
    WriteErrorLog Err.Description
End Sub

ユーザーインターフェース

VBA
' ユーザーフォームでわかりやすく
Private Sub btnCreate_Click()
    ' 入力チェック
    If txtCustomer.Value = "" Then
        MsgBox "顧客名を入力してください"
        Exit Sub
    End If

    ' 処理実行
    CreateEstimate
    MsgBox "見積書を作成しました"
End Sub

設定の外部化

VBA
' 設定シートで管理
Function GetSetting(settingName As String) As String
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("設定")

    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    For i = 1 To lastRow
        If ws.Cells(i, 1).Value = settingName Then
            GetSetting = ws.Cells(i, 2).Value
            Exit Function
        End If
    Next i
End Function

課題と今後

現在の課題

  • Excelファイルが大きくなる
  • 複数人同時編集の制限
  • バージョン管理

今後の計画

  • Webアプリ化の検討
  • データベース連携
  • 他システムとの連携

担当者の声

事務担当
月末の請求書発行が劇的に楽になりました。以前は残業が当たり前でしたが、今は定時で帰れます。

営業担当
見積書がすぐに出せるようになり、お客様への回答が早くなりました。競合に負けることが減った気がします。

まとめ

導入のポイント

1. 既存Excelを活用
2. 効果の高い業務から着手
3. 現場と一緒に設計
4. 保守体制を整備

得られた効果

  • 年間約50万円相当の効率化
  • 約4ヶ月で投資回収
  • 業務品質の向上
  • 働き方の改善

関連記事

お問い合わせ

VBAによる業務自動化についてのご相談は、お気軽にお問い合わせください。

  • 業務分析
  • VBA開発
  • 運用サポート

お問い合わせはこちら

最終更新: 2025年1月