エラー内容
VBAコンパイル時に、「名前が適切ではありません:」と表示される。
原因と解決方法
2つの原因と、その解決方法が考えられます。
原因1. 同じ名前の変数や定数を定義している
解説
モジュールレベルで、同じ名前の変数や定数を定義しているのが原因です。
サンプルソースは並べて書いているので、すぐ間違いに気づきますが、離れて定義していると意外と気づけないです・・・
1 2 3 4 |
Public msg001 As String Private msg001 As String |
解決方法
まちがって2回変数を定義した場合は、どちらかを削除します。
両方が必要な定義の場合は、どちらかの変数名を変更します。
原因2. 同じ名前のプロシージャを作成している
解説
モジュール内で、同じ名前のプロシージャを作成しているのが原因です。
プログラムが長い時や、プロシージャが離れていると、原因がわからなくて時間だけがすぎてしまうエラーです・・・
同じ作りのプロシージャを作る時、すでにあるプロシージャをコピーして作りますが、コピー後にプロシージャ名の変更をわすれて、よく起こるエラーです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub ErrSample28_01() Call DispInfo End Sub Sub DispInfo() '← 同名プロシージャ MsgBox "えくとしょ" End Sub Sub DispInfo() '← 同名プロシージャ MsgBox "えくとしょ" & "エラー記事" End Sub |
解決方法
まちがって2回プロシージャを定義した場合は、どちらかを削除します。
両方が必要な定義の場合は、どちらかのプロシージャ名を変更します。