Excel VBAの命名規則ガイド!モジュール・変数・プロシージャの統一方法
生徒
「VBAでプログラムを書いているのですが、変数やプロシージャの名前にいつも迷ってしまいます。何か決まりはありますか?」
先生
「それは非常に大切な視点ですね。プログラムの世界では、名前の付け方のルールのことを『命名規則(めいめいきそく)』と呼びます。」
生徒
「ルールを決めると、どんなメリットがあるんですか?」
先生
「あとで読み返したときに意味がすぐ分かったり、他の人と協力して作るときに混乱を防いだりできるんですよ。今日は初心者の方でも実践できる、読みやすい名前の付け方を解説します!」
1. 命名規則とは?なぜ名前の付け方が重要なのか
Excel VBAにおいて、命名規則とは「プログラムの中に登場する様々な要素に、統一感のある名前を付けるためのルール」のことです。プログラミング未経験の方にとって、名前はなんでも良いと思われがちですが、実はここが運用の分かれ道になります。
例えば、片付けをするときに、中身が分からない箱に「箱1」「箱2」と名前を付けても、後で何が入っているか分かりませんよね。それよりも「キッチン用品_お皿」「書類_契約書」と名前が付いている方が、誰が見ても中身がすぐに理解できます。VBAのプロジェクト構成においても、変数、プロシージャ(命令のまとまり)、モジュール(プログラムの保存先)に分かりやすい名前を付けることで、「可読性(読みやすさ)」と「保守性(直しやすさ)」が劇的に向上します。Google検索でも「VBA 読みやすいコード」や「VBA 開発効率」を求めている人は、必ずこの命名規則を学んでいます。
2. 変数名の付け方:役割と中身を明確にする
変数(へんすう)とは、データを入れておくための「箱」のことです。初心者のうちは a や b といった一文字の名前にしてしまいがちですが、これは避けるべきです。名前を見ただけで「何が入っている箱か」がわかるようにします。
よく使われる手法に「キャメルケース」があります。これは、複数の単語をつなげるときに userFirstName のように、2つ目の単語の先頭を大文字にする書き方です。ラクダ(Camel)のコブのように見えることからそう呼ばれています。また、変数の名前には「名詞」を使うのが一般的です。
' 悪い例:中身が分からない
Dim n As String
n = "田中太郎"
' 良い例:名前が入っていることが一目で分かる
Dim userName As String
userName = "田中太郎"
' 良い例:合計金額であることが分かる
Dim totalAmount As Long
totalAmount = 15000
3. プロシージャ名(マクロ名)の付け方:動詞から始める
プロシージャとは、特定の処理をまとめた一連の動作(命令)のことです。マクロを実行するときに選ぶ名前もこれに当たります。プロシージャ名は、そのマクロが「何をするのか」を表すため、「動詞 + 名詞」の形にすると非常に分かりやすくなります。
例えば、シートを印刷するマクロなら PrintReport、データを保存するなら SaveData といった具合です。こうすることで、コードを読んだときに「ここでデータを保存しているんだな」と直感的に理解できるようになります。
' 悪い例:何をするか不明
Sub Shori1()
Range("A1").Value = Date
End Sub
' 良い例:日付を入力する処理だと分かる
Sub WriteCurrentDate()
' 現在の日付を入力する
Range("A1").Value = Date
End Sub
' 良い例:売上を集計する処理だと分かる
Sub CalculateSalesTotal()
' 集計の計算ロジック(後続で学習)
End Sub
4. モジュール名の付け方:役割ごとにプレフィックスを活用
モジュールとは、プログラムのコードを書き込むファイル(保存場所)のようなものです。標準モジュールの名前が Module1、Module2 のままだと、どのファイルにどの機能が書いてあるか分からなくなります。プロジェクトエクスプローラー(VBEの左側のツリー)を整理するために、名前の先頭に役割を示す短い文字(プレフィックス)を付けるのがおすすめです。
- mod_Main:メインの処理を書く場所
- mod_Common:どのマクロでも使う共通の計算などを書く場所
- mod_FileIO:ファイルの読み書きに関する処理を書く場所
このように、「アンダースコア(_)」を使って分類することで、アルファベット順に並び、管理がしやすくなります。パソコンを触ったことがない方でも、フォルダ分けのようなものだと考えれば簡単ですね。
5. 避けるべき命名と予約語の注意点
名前を付けるときには、いくつか注意点があります。まず、日本語(全角文字)はなるべく使わないようにしましょう。VBAでは日本語の名前も動きますが、文字化けのリスクや、他のシステムとの連携で不具合が起きる可能性があるため、アルファベットと数字を使うのが世界標準のルールです。
また、予約語(よやくご)と呼ばれる、VBAがすでに特別な意味として使っている単語は名前に使えません。例えば Date(日付を取得する関数)や String(データ型の一種)などを変数名にすると、プログラムが混乱してエラーの原因になります。名前を付けた後に文字が勝手に大文字・小文字に変換されたり、青色に変わったりする場合は、予約語の可能性があるので別の名前に変えましょう。
' 悪い例:予約語を変数名にしている
Dim String As String ' エラーになる可能性大
' 悪い例:日本語の名前(動くが推奨されない)
Dim 顧客名 As String
' 良い例:英語で意味を補完する
Dim clientName As String
6. 定数の付け方:すべて大文字で際立たせる
定数(ていすう)とは、消費税率や固定のファイルパスなど、プログラムの途中で値を変えたくない「決まった数」のことです。これには Const というキーワードを使います。定数の名前は、変数と区別するために「すべて大文字」で書き、単語の間を「アンダースコア」でつなぐ「スネークケース」という書き方をするのが一般的です。
' 消費税率を定数として定義
Const TAX_RATE As Double = 0.1
Sub CalculatePrice()
Dim price As Long
price = 1000
' 定数を使って計算
MsgBox "税込価格は " & price * (1 + TAX_RATE) & " 円です。"
End Sub
このようにすべて大文字にすることで、「これは途中で変えてはいけない大事な値だ!」と自分や他のプログラマーに知らせる効果があります。
7. 統一したルールをプロジェクト全体に適用する
これまで紹介したルールを、プロジェクト全体で一貫して守ることが重要です。今日はキャメルケース、明日はスネークケース、とバラバラにしてしまうと、結局は「読みづらいコード」に戻ってしまいます。自分の「マイルール」をメモしておき、常に同じ感覚で名前を付けられるようにしましょう。
特に大規模なプロジェクト構成を考える場合、最初に「命名規則ガイドライン」を決めておくと、半年後にプログラムを修正するとき、当時の自分が何を考えていたかが魔法のように伝わってきます。未経験の方こそ、最初からこの「美しい名付け」を意識することで、上達のスピードが格段に早くなります。Excelの自動化を成功させる鍵は、実はロジックよりも、こうした「整理整頓の心」にあるのです。
8. コメント機能を活用して名前を補足する
どれだけ名前を工夫しても、名前だけでは説明しきれない複雑な処理もあります。その場合は、コメント機能を使いましょう。行の先頭に '(シングルクォーテーション)を付けると、その行はVBAに無視され、メモ書きとして残せます。
' 指定したフォルダ内の全てのExcelファイルを開くプロシージャ
' 作成者:田中 作成日:2026/01/18
Sub OpenAllExcelFiles()
Dim targetFolderPath As String ' 読み込むフォルダの場所
' 実際の処理はここに書く
End Sub
「適切な名前 + 分かりやすいコメント」の組み合わせは、最強のプロジェクト構成を作り上げます。パソコンの操作に自信がない方も、日本語でメモを残すことなら簡単にできますよね。この習慣が、あなたのマクロを誰にでも愛される「プロ級のツール」へと変えてくれます。