このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】名前が適切ではありませんのエラー原因

今回は「名前が適切ではありません」というエラーの原因を解説します。

これは変数名(もしくはプロシージャ名)がかぶっている(重複している)のが原因です。

重複した変数名を探せば良いのですが、重複がすぐわかるケースとわかりにくいケースがあります。

どういったことなのか説明していきます。

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にするとエラーを解消することができます。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

VBA

Posted by やろまい