Enumは複数の整数値の定数をまとめて定義する機構です。
目次
Enumを定義する
Enumの定義は宣言セクションに記述します。構文は次のとおりです。
Enum Enum名
メンバ名1 [= 定数式]
メンバ名2 [= 定数式]
メンバ名3 [= 定数式]
...
End Enum
Enum名やメンバ名には任意の名前を付けられます。「= 定数式」は省略可能ですが、記述する場合はLong型に評価される式でなければなりません。
Enum myEnum
foo = 2
bar = 4
baz = 8
End Enum
値の代入は省略することが出来ます。省略すると最初のメンバは0、その後のメンバは直前の値に1だけ増加した値が自動的に割り当てられます。
Enum myEnum
foo ' 0
bar ' 1
baz ' 2
End Enum
一部のメンバだけに値を代入することもできます。値の代入を省略したメンバには、やはり直前の値に1増加した値が自動的に割り当てられます。
Enum myEnum
foo ' 0
bar = 10 ' 10
baz ' 11
End Enum
このようにEnumはメンバの値の割り当てをプログラムに任せることが出来るので、コーディングミスを減らすことが出来ます。また自動割り当てを利用していれば、メンバを追加するのも簡単です。
Enum定義のポイント
- Enumの定義は宣言セクションに記述する。
- メンバはLong型に評価される値で初期化する。
- メンバの初期化を省略した場合、最初のメンバは0が割り当てられる。
- 2番目以降のメンバの初期化を省略した場合は、直前の値に1増加した値が割り当てられる。
- 初期化された値は実行時に変更はできない。
Enumのメンバを参照する
メンバの値を参照するには次のようにします。
Enum名.メンバ名
前述の最後の例のメンバの値を確認してみます。次のコードはイミディエイトウィンドウにメンバの値を表示します。
Enum myEnum
foo ' 0
bar = 10 ' 10
baz ' 11
End Enum
Sub sample()
Debug.Print myEnum.foo
Debug.Print myEnum.bar
Debug.Print myEnum.baz
End Sub
まとめ
Enumは値を自動的に割り当てたり、定数をグループ化するのに役立ちます。ぜひ使ってみてください。