カテゴリ: Excel VBA 更新日: 2026/01/29

Excel VBAの命名規則ガイド!モジュール・変数・プロシージャの統一方法

Excel VBAの命名規則ガイド!モジュール・変数・プロシージャの統一方法
Excel VBAの命名規則ガイド!モジュール・変数・プロシージャの統一方法

先生と生徒の会話形式で理解しよう

生徒

「VBAでプログラムを書いているのですが、変数やプロシージャの名前にいつも迷ってしまいます。何か決まりはありますか?」

先生

「それは非常に大切な視点ですね。プログラムの世界では、名前の付け方のルールのことを『命名規則(めいめいきそく)』と呼びます。」

生徒

「ルールを決めると、どんなメリットがあるんですか?」

先生

「あとで読み返したときに意味がすぐ分かったり、他の人と協力して作るときに混乱を防いだりできるんですよ。今日は初心者の方でも実践できる、読みやすい名前の付け方を解説します!」

1. 命名規則とは?なぜ名前の付け方が重要なのか

1. 命名規則とは?なぜ名前の付け方が重要なのか
1. 命名規則とは?なぜ名前の付け方が重要なのか

Excel VBAにおいて、命名規則とは「プログラムの中に登場する様々な要素に、統一感のある名前を付けるためのルール」のことです。プログラミング未経験の方にとって、名前はなんでも良いと思われがちですが、実はここが運用の分かれ道になります。

例えば、片付けをするときに、中身が分からない箱に「箱1」「箱2」と名前を付けても、後で何が入っているか分かりませんよね。それよりも「キッチン用品_お皿」「書類_契約書」と名前が付いている方が、誰が見ても中身がすぐに理解できます。VBAのプロジェクト構成においても、変数、プロシージャ(命令のまとまり)、モジュール(プログラムの保存先)に分かりやすい名前を付けることで、「可読性(読みやすさ)」「保守性(直しやすさ)」が劇的に向上します。Google検索でも「VBA 読みやすいコード」や「VBA 開発効率」を求めている人は、必ずこの命名規則を学んでいます。

2. 変数名の付け方:役割と中身を明確にする

2. 変数名の付け方:役割と中身を明確にする
2. 変数名の付け方:役割と中身を明確にする

変数(へんすう)とは、データを入れておくための「箱」のことです。初心者のうちは ab といった一文字の名前にしてしまいがちですが、これは避けるべきです。名前を見ただけで「何が入っている箱か」がわかるようにします。

よく使われる手法に「キャメルケース」があります。これは、複数の単語をつなげるときに userFirstName のように、2つ目の単語の先頭を大文字にする書き方です。ラクダ(Camel)のコブのように見えることからそう呼ばれています。また、変数の名前には「名詞」を使うのが一般的です。


' 悪い例:中身が分からない
Dim n As String
n = "田中太郎"

' 良い例:名前が入っていることが一目で分かる
Dim userName As String
userName = "田中太郎"

' 良い例:合計金額であることが分かる
Dim totalAmount As Long
totalAmount = 15000

3. プロシージャ名(マクロ名)の付け方:動詞から始める

3. プロシージャ名(マクロ名)の付け方:動詞から始める
3. プロシージャ名(マクロ名)の付け方:動詞から始める

プロシージャとは、特定の処理をまとめた一連の動作(命令)のことです。マクロを実行するときに選ぶ名前もこれに当たります。プロシージャ名は、そのマクロが「何をするのか」を表すため、「動詞 + 名詞」の形にすると非常に分かりやすくなります。

例えば、シートを印刷するマクロなら PrintReport、データを保存するなら SaveData といった具合です。こうすることで、コードを読んだときに「ここでデータを保存しているんだな」と直感的に理解できるようになります。


' 悪い例:何をするか不明
Sub Shori1()
    Range("A1").Value = Date
End Sub

' 良い例:日付を入力する処理だと分かる
Sub WriteCurrentDate()
    ' 現在の日付を入力する
    Range("A1").Value = Date
End Sub

' 良い例:売上を集計する処理だと分かる
Sub CalculateSalesTotal()
    ' 集計の計算ロジック(後続で学習)
End Sub

4. モジュール名の付け方:役割ごとにプレフィックスを活用

4. モジュール名の付け方:役割ごとにプレフィックスを活用
4. モジュール名の付け方:役割ごとにプレフィックスを活用

モジュールとは、プログラムのコードを書き込むファイル(保存場所)のようなものです。標準モジュールの名前が Module1Module2 のままだと、どのファイルにどの機能が書いてあるか分からなくなります。プロジェクトエクスプローラー(VBEの左側のツリー)を整理するために、名前の先頭に役割を示す短い文字(プレフィックス)を付けるのがおすすめです。

  • mod_Main:メインの処理を書く場所
  • mod_Common:どのマクロでも使う共通の計算などを書く場所
  • mod_FileIO:ファイルの読み書きに関する処理を書く場所

このように、「アンダースコア(_)」を使って分類することで、アルファベット順に並び、管理がしやすくなります。パソコンを触ったことがない方でも、フォルダ分けのようなものだと考えれば簡単ですね。

5. 避けるべき命名と予約語の注意点

5. 避けるべき命名と予約語の注意点
5. 避けるべき命名と予約語の注意点

名前を付けるときには、いくつか注意点があります。まず、日本語(全角文字)はなるべく使わないようにしましょう。VBAでは日本語の名前も動きますが、文字化けのリスクや、他のシステムとの連携で不具合が起きる可能性があるため、アルファベットと数字を使うのが世界標準のルールです。

また、予約語(よやくご)と呼ばれる、VBAがすでに特別な意味として使っている単語は名前に使えません。例えば Date(日付を取得する関数)や String(データ型の一種)などを変数名にすると、プログラムが混乱してエラーの原因になります。名前を付けた後に文字が勝手に大文字・小文字に変換されたり、青色に変わったりする場合は、予約語の可能性があるので別の名前に変えましょう。


' 悪い例:予約語を変数名にしている
Dim String As String ' エラーになる可能性大

' 悪い例:日本語の名前(動くが推奨されない)
Dim 顧客名 As String 

' 良い例:英語で意味を補完する
Dim clientName As String

6. 定数の付け方:すべて大文字で際立たせる

6. 定数の付け方:すべて大文字で際立たせる
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. 統一したルールをプロジェクト全体に適用する

7. 統一したルールをプロジェクト全体に適用する
7. 統一したルールをプロジェクト全体に適用する

これまで紹介したルールを、プロジェクト全体で一貫して守ることが重要です。今日はキャメルケース、明日はスネークケース、とバラバラにしてしまうと、結局は「読みづらいコード」に戻ってしまいます。自分の「マイルール」をメモしておき、常に同じ感覚で名前を付けられるようにしましょう。

特に大規模なプロジェクト構成を考える場合、最初に「命名規則ガイドライン」を決めておくと、半年後にプログラムを修正するとき、当時の自分が何を考えていたかが魔法のように伝わってきます。未経験の方こそ、最初からこの「美しい名付け」を意識することで、上達のスピードが格段に早くなります。Excelの自動化を成功させる鍵は、実はロジックよりも、こうした「整理整頓の心」にあるのです。

8. コメント機能を活用して名前を補足する

8. コメント機能を活用して名前を補足する
8. コメント機能を活用して名前を補足する

どれだけ名前を工夫しても、名前だけでは説明しきれない複雑な処理もあります。その場合は、コメント機能を使いましょう。行の先頭に '(シングルクォーテーション)を付けると、その行はVBAに無視され、メモ書きとして残せます。


' 指定したフォルダ内の全てのExcelファイルを開くプロシージャ
' 作成者:田中 作成日:2026/01/18
Sub OpenAllExcelFiles()
    Dim targetFolderPath As String ' 読み込むフォルダの場所
    ' 実際の処理はここに書く
End Sub

「適切な名前 + 分かりやすいコメント」の組み合わせは、最強のプロジェクト構成を作り上げます。パソコンの操作に自信がない方も、日本語でメモを残すことなら簡単にできますよね。この習慣が、あなたのマクロを誰にでも愛される「プロ級のツール」へと変えてくれます。

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法
New2
Office Scripts
Office Scripts普及の歴史とMicrosoftの方向性!Excel自動化が進化してきた流れをやさしく解説
New3
Excel VBA
Excel VBA関数を用途別に作成!計算・文字列処理の基本を初心者向けに解説
New4
Office Scripts
Office Scriptsで条件付き書式を自動化!数値変化に応じてExcelの書式を自動更新する方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excelマクロのセキュリティ設定の基本!安全に実行するための信頼センター設定まとめ
No.2
Java&Spring記事人気No2
Office Scripts
Office Scriptsでできること・できないことを完全整理!Excel自動化の基本と限界をやさしく解説
No.3
Java&Spring記事人気No3
Excel VBA
目的別にモジュールを分割する方法!処理単位で整理して見やすくするテクニック
No.4
Java&Spring記事人気No4
Excel VBA
Excel VBAとOffice Scriptsの違いを比較!初心者でもわかる学ぶべきスキル
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBA基本文法の総まとめ!初心者が必ず押さえるべき20の基礎ポイント完全ガイド
No.6
Java&Spring記事人気No6
Office Scripts
Office Scriptsで条件付き書式を自動化!Excel自動化初心者向けスクリプト操作の基本
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.8
Java&Spring記事人気No8
Office Scripts
Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法