【VBA】名前が適切ではありませんのエラー原因
今回は「名前が適切ではありません」というエラーの原因を解説します。
これは変数名(もしくはプロシージャ名)がかぶっている(重複している)のが原因です。
重複した変数名を探せば良いのですが、重複がすぐわかるケースとわかりにくいケースがあります。
どういったことなのか説明していきます。
名前が適切ではありませんの原因(すぐわかるケース)
Sub Sample1()
Dim abc As String
Dim abc As Long
End Sub
この例では、同じプロシージャ内にabcという同じ名前の変数が2つ存在しています。
そのため、「名前が適切ではありません」のエラーが発生します。
この場合は、変数が近くにあるためすぐにエラー原因に気付くことができます。
名前が適切ではありませんの原因(わかりにくいケース)
'Module1
Enum abcd
a
End Enum
'Module2
Enum abcd
b
End Enum
わかりにくいケースはEnumによるエラーです。
上のサンプルコードのように、Module1とModule2に同じ名前のEnumを書くとエラーが発生します。
しかも、片方のモジュール側だけでエラー表示されるので、エラー原因が何なのか分かりづらいです。
もし、Enumで「名前が適切ではありません」のエラーが出たら、他のモジュールに同じ名前のEnumがないか探してみてください。
'Module1
Private Enum abcd
a
End Enum
'Module2
Enum abcd
b
End Enum
解決策ですが、どちらかをPrivateにするとエラーを解消することができます。