ビル管理会社では、Excelを使った事務作業が多く発生します。
複数社員がVBAマクロを作成・利用する場合、コードの書き方を統一することが保守性や再利用性の向上につながります。
ここでは、社内で共有できるVBAコーディング規則の例をまとめました。
目次
1. ファイルとプロジェクト構成
- 1プロジェクト=1業務単位
- 例:入退去管理マクロ、請求書作成マクロ、報告書自動化マクロ
- モジュール分割
Module_〇〇
→ 処理単位ごとに命名(例:Module_Report, Module_Billing)
- シート操作用モジュール
- シート操作は専用モジュールにまとめる(例:Module_SheetOperations)
2. 変数・定数
- 変数命名
- キャメルケース推奨(例:lastRow, rentAmount, tenantName)
- 型を明示するプレフィックスも可(例:iRow As Long, strTenant As String, dblRent As Double)
- 定数命名
- 全て大文字、単語間はアンダースコア(例:CONST_START_ROW, CONST_FILE_PATH)
- 宣言
- すべての変数は必ず
Dim
で宣言 Option Explicit
を必ず使用
- すべての変数は必ず
Option Explicit
Const START_ROW As Long = 2
Dim lastRow As Long
Dim ws As Worksheet
3. マクロ・サブルーチン
- サブルーチン名
- 処理内容が一目でわかる名前(例:Sub CheckInputRules、Sub GenerateInvoice)
- コメント
- 1行目に処理概要を記載
- 重要な処理ごとにコメントを記載
- 引数
- 汎用化可能な処理は引数で柔軟に
' 入力規則チェックマクロ
' B列に入力された値の空欄・数値・日付形式をチェック
Sub CheckInputRules(ws As Worksheet, targetColumn As String)
' 処理内容
End Sub
4. フォーマット・可読性
- インデントはタブまたは半角スペース4つで統一
- 長い行は
_
で改行 - 処理ブロックの開始・終了に空行を入れて視認性を確保
- 条件分岐は必ず
If ... Then ... Else ... End If
で明示的に書く
If IsEmpty(cell.Value) Then
cell.Interior.Color = vbYellow
ElseIf Not IsNumeric(cell.Value) Then
cell.Interior.Color = vbRed
End If
5. エラー処理
- 必ず
On Error
を利用して予期せぬエラーを防ぐ - エラー時はユーザーに分かりやすいメッセージを表示
On Error GoTo ErrHandler
‘ 処理内容
Exit Sub
ErrHandler:
MsgBox “エラー発生: ” & Err.Description, vbCritical
6. シート・セル操作
- 直接セルアドレスをハードコーディングせず、変数で管理
- シート名も定数化して統一
Const SHEET_MANAGEMENT As String = "管理表"
Set ws = ThisWorkbook.Sheets(SHEET_MANAGEMENT)
7. コメント・ドキュメント
- 各マクロ・関数には冒頭に概要コメント
- 更新履歴コメントを必ず残す(作成日・作成者・修正内容)
' 作成日: 2025-09-08
' 作成者: 金太郎
' 内容: 入力規則チェックマクロ
' 更新履歴:
' 2025-09-08 - 初版作成
8. 推奨運用
- 社内VBAは マクロブックで一元管理
- バージョン管理(ファイル名に日付)を行う
- 重要処理は別モジュールにまとめ再利用可能にする
💡 まとめ
この規則を守ると、社員全員が同じスタイルで可読性の高いVBAコードを書けるようになります。
保守性や再利用性が向上し、複数人で作業する社内業務に最適です。