MW211 EXIT

devlog
ExcelVBA/列挙型と関数の名前の衝突
2018年06月27日
列挙型と関数では名前が衝突してしまう。
以下のようなエラーが出る。
┌────────────────┐
│コンパイルエラー:               │
│名前が適切ではありません: テスト│
└────────────────┘
以下のような場合にエラーとなるのだ。
┌──────────────────────────────────────┐
│Enum 列挙型                                                                 │
│    テスト                                                                  │
│End Enum                                                                    │
├──────────────────────────────────────┤
│Sub テスト()                                                                │
│    ' 実行するとエラーが出る                                                │
│End Sub                                                                     │
└──────────────────────────────────────┘
一方がPublicなら他方がPrivateでも衝突。
Private同士でも同じスコープに同居したら衝突となる。

但し、シートに関数を記述した場合には大丈夫。
→シート配下の関数となるので衝突が回避できる。

同じくフォームに関数を記述した場合でも大丈夫。
→フォーム配下の関数となるので衝突が回避できる。

もちろんクラス配下のメソッドの場合でも大丈夫。
→クラス(インスタンス)配下の関数となるので衝突が回避できる。

つまり、「.bas」にある関数との衝突に気をつければよい。
分類:ExcelVBA