VBAテクニック集 VBA一覧 変数・知識 文法・構文

【VBA】変数名の付け方|キャメルケース・スネークケースなど命名規則を徹底解説

Excel VBAでコードを書いていると、最初は動けば問題ないと思いがちですが、後からコードを読み返したときに「この変数は何を意味しているのか分からない」「自分で書いたのに理解に時間がかかる」と感じた経験はないでしょうか。

その原因の多くは、変数名の付け方(命名規則)が整理されていないことにあります。
変数名は、コードの処理内容を説明する“文章”の一部であり、命名が適切であればコメントが少なくても処理内容が自然に理解できます。

本記事では、VBAにおける変数名の重要性から、キャメルケース・スネークケースなどの代表的な命名規則、実務で使える具体例、やってはいけない命名例まで、保守性・可読性・エラー防止の観点から徹底的に解説します。

目次

✅ 【VBA】なぜ変数名の付け方が重要なのか?

変数名は単なる「名前」ではなく、コードの品質を左右する重要な要素です。
適切な命名には、次のようなメリットがあります。

  • コードの意味が一目で分かる
  • 後から修正・追加がしやすい
  • 他人が読んでも理解しやすい
  • バグや勘違いを防げる
  • コメント量を減らせる

特にVBAは、業務マクロとして「長期間使われる」「他人に引き継がれる」ケースが非常に多いため、変数名の良し悪しが実務効率に直結します。


✅ 【VBA】変数名が悪いと起こる問題

まずは、よくある「悪い例」を見てみましょう。

Dim a As Long
Dim b As Long
Dim c As Long

c = a + b

このコードは動作しますが、

  • a は何?
  • b は何?
  • c は何の結果?

という疑問が一切解消されません。

数分後、あるいは数か月後にこのコードを見た場合、ほぼ確実に理解できなくなります


・変数名が原因で起こる実務トラブル

  • 修正時に誤った変数を変更してしまう
  • 処理内容を勘違いしてバグを埋め込む
  • 引き継ぎ時に説明コストが増大する
  • 「触るのが怖いコード」になる

これらはすべて、命名規則を軽視した結果として起こりがちです。

参考:【VBA】Option Explicitとは?変数未宣言エラーを防ぐ基本設定|初心者必見重要機能


✅ 【VBA】良い変数名の基本ルール

まずは、VBAに限らずプログラミング全般で通用する基本ルールを押さえましょう。

・ルール1:意味が分かる名前を付ける

Dim totalPrice As Long
Dim orderCount As Long
Dim averageScore As Double

変数名を見るだけで、何を表しているかが分かる状態が理想です。


・ルール2:省略しすぎない

Dim cnt As Long    ' OKな場合もある
Dim c As Long      ' NG

cnt(count)は一般的ですが、c のような1文字変数は避けるべきです。


・ルール3:ローマ字の日本語は避ける

Dim kingaku As Long
Dim torihikiDate As Date

日本人には分かりやすく見えますが、英語と混在すると可読性が落ちます。

Dim amount As Long
Dim transactionDate As Date

英語ベースで統一する方が、長期的に見て有利です。


・ルール4:役割が変わる変数は使い回さない

Dim result As Long
result = total + tax
result = result * 2

途中で意味が変わると、理解が難しくなります。
用途ごとに変数を分けるのが理想です。

参考:【VBA】データ型はなぜ必要?処理速度・メモリ・エラー観点から徹底解説




✅ 【VBA】代表的な命名規則①:キャメルケース(CamelCase)

キャメルケースは、単語の区切りを大文字で表現する命名規則です。

・キャメルケースの例

Dim totalPrice As Long
Dim orderCount As Long
Dim customerName As String

先頭は小文字、2語目以降を大文字にします。


・キャメルケースのメリット

  • VBAの一般的な書き方と相性が良い
  • 単語の区切りが視認しやすい
  • 長い変数名でも読みやすい

VBAでは、キャメルケースが最もよく使われる命名規則です。


・プロシージャ名との相性も良い

Sub calculateTotalPrice()
Sub exportSalesData()

変数名・Sub名をキャメルケースで統一すると、コード全体が整います。


✅ 【VBA】代表的な命名規則②:パスカルケース(PascalCase)

パスカルケースは、キャメルケースと似ていますが、先頭も大文字にします。

・パスカルケースの例

Dim TotalPrice As Long
Dim OrderCount As Long

・VBAでの使いどころ

VBAでは一般的に、

  • 変数名 → キャメルケース
  • Sub / Function 名 → パスカルケース

という使い分けをする人が多いです。

Sub CalculateTotalPrice()
    Dim totalPrice As Long
End Sub

✅ 【VBA】代表的な命名規則③:スネークケース(snake_case)

スネークケースは、単語をアンダースコア(_)で区切る命名規則です。

・スネークケースの例

Dim total_price As Long
Dim order_count As Long

・スネークケースの特徴

  • 単語の区切りが明確
  • SQLやPythonでは一般的
  • VBAではやや少数派

VBAでも使えますが、既存コードやチームルールに合わせることが重要です。


・VBAではこんな使い方もある

Dim last_row As Long
Dim target_sheet As Worksheet

「行・列・シート」関連ではスネークケースを好む人もいます。


✅ 【VBA】ハンガリアン記法は使うべきか?

VBAでは昔から、ハンガリアン記法が使われてきました。

・ハンガリアン記法の例

Dim lngTotal As Long
Dim strName As String
Dim wsTarget As Worksheet

型や役割を接頭辞で表します。


・メリット

  • 変数の型が一目で分かる
  • VBAの補完と相性が良い

・デメリット

  • 名前が長くなりがち
  • 型変更時に修正が必要
  • 可読性が下がる場合がある

・現代的なおすすめスタイル

完全なハンガリアンではなく、

Dim targetWs As Worksheet
Dim resultArr As Variant

のように、**役割だけを軽く補足する“緩いハンガリアン”**が実務では使いやすいです。


✅ 【VBA】用途別・変数名の付け方実例

・カウンタ系の変数

Dim i As Long
Dim rowIndex As Long
Dim loopCount As Long

短いループでは i も許容されますが、ネストが深い場合は意味を持たせます。


・行・列・範囲を表す変数

Dim lastRow As Long
Dim startCol As Long
Dim targetRange As Range

・ブック・シート関連

Dim wbSource As Workbook
Dim wbOutput As Workbook
Dim wsData As Worksheet
Dim wsResult As Worksheet

・配列・コレクション

Dim salesList As Variant
Dim customerArray As Variant
Dim resultDict As Object

・フラグ(True / False)

Dim isSuccess As Boolean
Dim hasError As Boolean
Dim needUpdate As Boolean

Boolean型は is / has / can / need などから始めると意味が明確になります。


✅ 【VBA】やってはいけない変数名の例

・意味不明な省略

Dim tmp As Long
Dim val1 As Long
Dim data2 As Long

一時的でも、何の値か分かる名前を付けるべきです。


・役割が変わる変数名

Dim result As Variant
result = 10
result = "完了"

型や意味が変わる変数は、バグの温床になります。


・予約語や紛らわしい名前

Dim Date As Date
Dim Name As String

動作はしますが、可読性・安全性の面でおすすめできません。


✅ 【VBA】命名規則を統一するメリット

命名規則を決めておくと、次のようなメリットがあります。

  • コードレビューがしやすい
  • 他人のコードが読みやすい
  • チーム開発でも混乱しない
  • 修正時の影響範囲が把握しやすい

個人開発でも、「将来の自分」は他人です。
統一ルールは必ず役に立ちます。


✅ 【VBA】RPA(UiPath)と併用する場合の命名の考え方

VBAとRPAを組み合わせる実務では、変数名の明確さがさらに重要になります。

Dim inputFilePath As String
Dim outputFolderPath As String
Dim isCompleted As Boolean

このように、

  • 入力
  • 出力
  • 状態

が一目で分かる命名にすると、RPAフローとの対応関係も理解しやすくなります。


✅ 【VBA】命名で意識したい実務的ポイントまとめ

  • 英語ベースで統一する
  • キャメルケースを基本にする
  • Booleanは is / has / can で始める
  • オブジェクトは役割が分かる名前に
  • 意味のない省略は避ける
  • 一貫性を最優先する

✅ まとめ:変数名は「コードの読みやすさ」を決める最重要要素

  • 変数名はコードの説明文そのもの
  • 良い命名はコメントを減らし、理解を早める
  • VBAではキャメルケースが最も一般的
  • スネークケースやハンガリアンは用途次第
  • 命名規則を統一すると保守性が大幅に向上
  • 実務・RPA連携では「役割が分かる名前」が特に重要

変数名を丁寧に付けるだけで、VBAコードの品質は確実に向上します。
「動くコード」から「読める・直せるコード」へ。
ぜひ今回の内容を、日々のマクロ作成に取り入れてみてください。

    -VBAテクニック集, VBA一覧, 変数・知識, 文法・構文