Enumの謎挙動
Enumの謎挙動
前々から気になっていたこと。
小ネタです。
誤入力防止のための記法
変数名などの誤入力に気づきやすくするために、パスカル記法やキャメル記法を使っている人はかなり多いと思う。
VBAの場合、変数名を、たとえばtooYoungToDie
と宣言しておけば、入力時にtooyoungtodie
と全て小文字で入力しても、(そんな人はいないと思うが、)TOOYOUNGTODIE
と全て大文字で入力しても、改行時や別の行への移動時にVBEが勝手に宣言時の形(この場合だとtooYoungToDie
)になおしてくれる。
綴りに間違いがあったら、この自動変換が作用しないので、誤入力に気づきやすい、という寸法だ。
しかし、この法則がEnumの場合だと成り立たない。
Enumの謎挙動
たとえば、
Private Enum Hoge hgAho hgBoke hgKasu End Enum
このようなEnumを宣言していたとする。
で、このモジュール内のプロシージャで、たとえばhgaho
と要素名を全て小文字で入力したとしよう。
どうなるか。
ご覧あれ。
こうなるのである。
おわりに
この謎挙動によって、致命的に困るということはあまりないと思いますが、知らない間にEnum要素名の見た目が変わってしまっていることがあるので、自作のEnumを使うときは注意しましょう。
以上、小ネタでした。
追伸
あと、これは有名なことかも知れませんが、一応。
自作Enumを使っていると、時々、それこそ何もしていないのに突然
定数式が必要です
エラーを吐き始めることがあります。
それまで問題なく動いていたコードだし、ハイライトされているEnum要素にしても、宣言済みのものなので、軽くパニックになります。
もし、そういう状況に遭遇したら、Enum宣言のPublic
をPrivate
に(またはその逆に)書き換えて、元に戻す、という手法を試みてください。それだけでなおります。