ExcelVBAで開発:命名規則について
ExcelのVBAでプログラムを書くときに、大切なのは、変数やプロシージャなどに名前を付けるときにルールを決め、効率的で読みやすいコードを書くために重要です。
命名規則
まずは、VBAに限らず一般的なルールを紹介します。
一般的なルール
- 意味のある名前を使用する
-
名前からその用途や内容が分かるようにすること
'OK Dim userName as String Dim userAge as Integer 'NG Dim a as String Dim data as String
- 省略形を避ける
-
言葉を省力せずに可能な限り内容がわかるような名前をつけること
’OK Dim speed as Integer 'NG Dim spd as Integer
- 数字で始めない
-
名前は必ず数字で始めずアルファベットや日本語で始めること
’OK Dim count as Integer 'NG Dim 1count as Integer
変数名規則
- キャメルケースまたはスネークケース(キャメルケースがおすすめ)
-
複数の単語を含む名前を作成する
'キャメルケース Dim userFirstName as String 'スネークケース Dim user_first_name as String
- ハンガリアン記法(使わない人も多い)
-
変数の型を示す短い接頭辞をつける
Dim strName as String Dim lngTotal as Long
関数とプロシージャ
関数とプロシージャは、プログラミングでいうとメソッドになります。
メソッドは『振る舞い』ということで、動詞をつけて命名します。小文字で始めるのが習慣的です。
'関数の場合
Function getFullName() as String
'処理
End Function
'プロシージャ
Sub mainProcess()
'処理
end Sub
動詞の例
get | 値を取り出す |
set | 値を入れる |
clear | クリアする |
update | 更新する |
delete | 削除する |
add | 追加する |
insert | 挿入する |
make | 作成する |
opne | 開く |
close | 閉じる |
印刷する |
定数
定数は、すべて大文字で名づけることが一般的です。
Public Const MAX_ROWS as Integer
すべて大文字の変数は、定数だということがすぐにわかるのでとっても便利です。
モジュール名(オブジェクト名)
モジュール名は、大文字ではじめるようにしましょう。
クラス名
クラス名は、先頭文字は大文字にします。
フォームの名前
フォームの名前は、大文字からはじめましょう。
フォームオブジェクト
フォームで使う各入力オブジェクト
Excelのフォームには、ラベルやテキストボックスなど画面を作成するためのオブジェクトが用意されています。これらの命名につていは、列挙型(txtFirstName)で行うことが多いです。
絶対にしなければならないということでは、ありません。この方法は、VB6.0以前は推奨されていた方法です。
オブジェクト名 | プリフィックス | 利用例 |
---|---|---|
フォーム | frm | frmEntry |
ラベル | lbl | lblFullName |
テキストボックス | txt | txtFirstName |
コンボボックス | cbo | cboAge |
リストボックス | lst | lstAiifiatedDepartment |
チェックボックス | chk | chkLanguage |
オプションボタン | opt | optGender |
トグルボタン | tgr | tgrLanguage |
フレーム | fra | fraEntry |
コマンドボタン | cmd | cmdExit |
タブストリップ | tab | tabCareer |
垂直スクロールバー | vsb | vsbCareer |
スピンボタン | spn | spnPage |
イメージ | img | imgFace |
省略をしないこと
命名規則と同じく大切なことは、省略してプログラムを書かないことです。
例えば、
call getName
ほかのモジュールのプロシージャを呼び出すことができますが、どのモジュールに書いてあるのかがわかりません。
必ず、モジュール名+プロシージャ名(関数名)で呼び出すようにしましょう。
Call Account.getName
日本語を使うことについて
モジュール名や変数名、各メソッドなどに日本語を使うか使わないかについては、VBAの場合は、使用していいと思います。様々な意見があると思いますが。。。
ACCESSやExcelでは、よく日本語を使っているコードを見ます。ごちゃ混ぜになっているものも多い印象です。
日本語を使うと命名規則で、最初の文字を大文字や小文字ではじめるといった規則は、使えなくなりますので注意が必要です。
コメント