「変数名ってどう付けたらいいんですか?」「英語が苦手で、毎回 a や data1 にしています」——これはVBAを学ぶ多くの方が感じている悩みです。
変数名に唯一の正解はありませんが、実務で読みやすく誤解を生まない命名には共通したパターンがあります。この記事でその考え方を整理します。
変数名で「意味が伝わる」ことがなぜ重要か?
次の2つのコードを見比べてください。どちらも同じ処理ですが、読みやすさがまったく異なります。
わかりにくい例
Sub Calc()
Dim a As Long
Dim b As Long
a = Range("A1").Value
b = a * 1.1
Range("B1").Value = b
End Sub
意味が伝わる例
Sub Calc()
Dim price As Long
Dim total As Long
price = Range("A1").Value
total = price * 1.1
Range("B1").Value = total
End Sub
後者は「price(元の金額)を読み込んで total(税込金額)を計算している」という意図がひと目で伝わります。変数名が明確だと、バグの発見も早くなります。
実務でよく使う変数名パターンとは?
英語が苦手でも、定番の略語パターンを覚えれば十分対応できます。
| 変数名 | 意味 | よく使う場面 |
|---|---|---|
i・j | カウンタ | For〜Nextのループ処理 |
sh | シート(Sheet) | ワークシートを変数化する |
wb | ブック(Workbook) | 複数ブックを扱う処理 |
rng | 範囲(Range) | 複数セルの操作 |
val | 値(Value) | 数値や文字列の一時保存 |
row・col | 行・列 | 行・列の位置指定 |
dt | 日付(Date) | 日付データを扱うとき |
cnt | カウント(Count) | 件数を数える |
flg | フラグ(Flag) | True/Falseの状態管理 |
実際の使用例:
Dim sh As Worksheet
Dim i As Long
Dim val As Variant
Set sh = Worksheets("売上")
For i = 2 To sh.Cells(Rows.Count, 1).End(xlUp).Row
val = sh.Cells(i, 2).Value
If val > 1000 Then
sh.Cells(i, 3).Value = "高額"
End If
Next i
良い変数名・避けるべき変数名とは?
良い変数名の基準
- 何を意味するか伝わる(金額?日付?名前?)
- 単語を略しすぎない(意味不明な1文字は避ける)
- カウンタ・フラグは目的が明確(例:
cnt・flg) - 似た名前が混在しない(例:
num1・num2は危険)
避けるべき変数名の例
' 意味が伝わらない(NG)
Dim a1 As Long
Dim x As Long
Dim dddd As Variant
このような名前のまま処理が進むと、後からロジックを追うのが非常に困難になります。
まとめ
- 変数名に唯一の「正解」はないが、読みやすさが最も大切
- 短くても意味が伝わる略語(
sh・cnt・valなど)は十分実用的 - 英語が苦手でも定番の略語パターンを覚えれば対応できる
- 意味が伝わる変数名はバグの発見・修正・引き継ぎを楽にする
- まず「自分が読んで意味がわかるか?」という視点から改善していく
よくある質問
変数名は日本語でもいいですか?
VBAでは日本語の変数名も使えます。ただし環境によっては文字化けの原因になる場合があり、英語(略語)の方が一般的です。チームで使う場合はルールを統一することをおすすめします。
大文字・小文字は区別されますか?
システム上の区別はありませんが、読みやすさのために「書き方のルール」を決めておくのが主流です。
よく使われるのは、totalPrice のように単語の境目を大文字にする方法です。実はVBAには、「一度宣言した大文字・小文字の形を、エディタが自動で再現してくれる」という便利な機能があります。
Dim totalPrice と一度書いておけば、次から totalprice と全部小文字で打っても、勝手に totalPrice に修正してくれます。これを利用すると、入力ミス(スペルミス)にすぐ気付けるようになるので、単語の区切りに大文字を使うのが特におすすめです。
もしくはtotal_priceのように「_(アンダーバー)で繋ぐ方法も多いです。
1文字の変数名(i・j)はいつ使っていいですか?
ループのカウンタとして使う場合は慣習として広く認められています。For i = 1 To 10 の i はその典型例です。ただし処理の中で意味のある値を保持する変数には1文字は避けましょう。
同じコード内で同じ変数名を再利用してもいいですか?
同じスコープ内では宣言が1つのみ有効です。同じ変数名を異なる用途で再利用するとバグの原因になりやすいので、用途ごとに別の変数名を使うことをおすすめします。
変数名の長さに制限はありますか?
VBAの変数名は最大255文字まで使えます。ただし長すぎるとコードが読みにくくなるため、意味が伝わる範囲でできるだけ短くするのがベストです。
動画で学びたい方へ
「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。
VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。



