VBA変数名のつけ方を、わたしが長年使っているハンガリアン記法を中心に解説します。変数名のつけ方のコツは、その変数名からその変数が何のために定義(宣言)されたのかをイメージできるような名前にすることだと思います。
また変数名のつけ方は、いくつかのルールに従ってつける場合もありますが、今回は、わたくしが実務の中で利用している変数名のつけ方を中心にお話ししたいと思います。
目次
VBA変数名をつける時のルール
VBAの変数名には、使える文字などのルールがあります。ただ経験上、先頭の文字には数字や「_」(アンダーバー)は使えないことと、英字、漢字、ひらがな、カタカナはOKであることを覚えておけば、あとのルールは特に覚えなくてもよいと思っています。
その他のルールに関してですが、VBA側で予約されている文字(Open, Close, Dim, Sub, Option など)はNGです。ただし、これらは使う時に宣言してもエラーになりますので、特に覚えておく必要はないです。
また空白は使えませんが、予約語同様に使おうとするとエラーになります。また空白が使いたいようなケースでは、空白の代わりに「_」を使うことで空白に見せることができます。
あと長さ制限(255文字以内)もありますが、経験上そんなに長い変数名をつける必要がなかったので、これも特に覚える必要のないルールだと思います。
VBA変数名のつけ方
つぎに変数名のつけ方についてお話ししたいと思います。変数名をつける上で、もっとも大切なことは、その変数名が何のデータを取り扱うかが分かるようにつけることです。
たとえば、文字列型のデータで、「住所」ならばstrAdのように先頭3文字に文字列型(String)を意味する「str」を使います。それに続けて、住所の英語の意味"Address"から先頭の2文字分「Ad」をつけるとかです。
この例では、変数名の先頭にデータ型をつけ、後ろにそのデータを表現する短い英文字をくっつけて作っています。
一つの例では分かりづらいと思いますので、わたしが実務でよく使う変数名をご参考までに記載しておきますね。なお、変数のデータ型については、下の記事をご参照ください。
VBA変数名の例
- 長整数型(Long): lngCnt(カウント)、 lngYear(会計年)、lngMnth(会計月)、lngQty(在庫数)、lngSPrc(売価)
- 倍精度浮動小数点型(Double):dblAve(平均値)
- オブジェクト型(Worksheet, Workbook, Range):wstSelf(まとめシート)、wbkSelf(まとめExcelブック)、rngData(セルのデータ範囲)
- ブーリアン型(Boolean):blnFlag(判定用フラグ)
また変数名をつける時に、1つだけ意識していることがあります。それは、あまり長い変数名をつけないことです。
例えば、例にあげたlngCntですが、カウントの英字は"Count"になります。ですが、lngCountだとちょっと長い気がしますので、このような場合は、意味がなんとか伝わるくらいまで、途中の英字を間引いて変数名をつけています。
また、長すぎる変数名を避ける理由ですが、VBAコードの中で1, 2回使われる程度なら良いのですが、頻出するような変数では何度も書かなくてはなりませんよね。
そうなると変数名が長い分、コーディングが非効率になりますし、タイプミスも増えるようになりますから、変数名はなるべくなら短く単純明解な名前がいいです。
でもちょっと難しいですよね。あまり長すぎてもよろしくないし、短すぎて何のデータのための変数だか、パッと分からないのも効率悪いですし。
なので、わたしの場合は、変数の宣言時には変数名の横に必ずコメント文を補うようにしています。
そうしておくことで、後でつけた変数名の意味が分からなくなっても思い出すことができるからです。
記法について
前述の文字列型変数名の例にありましたstrAdの先頭の3文字の「str」ですが、文字列型の変数であることが分かるようにつけているとお話ししました。
このように、先頭にデータ型を明記する書き方は、ハンガリアン記法とよばれる変数名のつけ方にならっています。
わたしは、VBAを始めたばかりの教材で、このハンガリアン記法で学習しましたので、今ではすっかり使い慣れてしまい、今でもほとんどの変数名でこの記法を使っています。
入門者の方にも、はじめの頃はデータ型が明確に分かるハンガリアン記法を使う方が、変数の型を意識しながらコーディングできるのでおすすめです。
そして慣れてきたら、他の記法(キャメル記法やスネーク記法など)もありますので、いろいろと試されるのもよいかもしれません。
わたしは、前3文字がデータ型で、直ぐ後ろの大文字1文字から後ろは、変数に入れるデータの内容を表現しています。もちろん、実務でも変数を宣言した右横に、必ずコメント文も入れてます。
まとめ
ここでご紹介した変数名については数少ないですが、これから先紹介するコードの中でもいろいろと使いますので、都度ご覧になって参考にしてみてください。