【VBAエラー】「修正候補: 識別子」の原因・解決方法

エラー内容

VBAコンパイル時に、「修正候補: 識別子」と表示される。

原因と解決方法

識別子とは、変数や定数、関数の名前のことです。
VBAでは名前を付けるルールがあり、このルールに反した名前を付けようとするとこのエラーが発生します。

3つの原因と解決方法が考えられます。

原因1. 名前の先頭が数字や記号

解説

識別子(変数や定数、関数の名前)の先頭には、数字や記号(_や*)は使えません。

解決方法

名前の先頭を、アルファベットか日本語(ひらがな、カタカナ、漢字)に修正します。
プログラムの見やすさ、コーディングのしやすさを考えると、アルファベットのローマ字表記がオススメです。

日本語だとタイピングがメンドクサイ・・・

それに予約語は英語なので、ローマ字表記なら同じ名前にならないです!

 

原因2. 名前がVBAの予約語

解説

予約語とは、VBAにあらかじめ準備(定義)されているステートメントや関数の名前のことです。
この予約語と同じ名前をつけようとするとエラーになります。

予約語はIfやFor、Dateなどたくさんあります。

解決方法

予約語と違う名前に変更します。

 

原因3. コーディング途中で改行

解説

SubやFunctionのみ入力して、コードが半端な状態で改行(Enterキー)すると発生します。

解決方法

1行に必要なコードを書いてから、改行しましょう。
SubやFunctionの場合は、名前や引数、戻り値の定義をしてから改行すればOKです。

 

まとめ

参考までに、「VBAの名前をつける時のおもなルール」を紹介します。

  • 名前の先頭は、アルファベットか日本語(ひらがな、カタカナ、漢字)
    先頭に数字や記号(_や*)は使えません
  • 予約語(VBAに準備されている関数やステートメントの名前)と同じ名前はダメ
  • 変数名の長さは半角255文字まで

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
VBAエラー原因・解決方法
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました