「変数が定義されていません。」の原因・解決方法

変数が定義されていません
スポンサーリンク

エラー内容

VBAコンパイル時に、「変数が定義されていません。」と表示される。

変数が定義されていません

原因と解決方法

変数の宣言を強制している時(モジュールの先頭でOption Explicit)に、変数の定義が正しくされていないと発生するエラーです。

注意!
一部のサイトで「変数の宣言を強制しないようにすればいい ⇒ Option Explicitを削除しよう」とあります。
これは絶対NGです。その場しのぎになって、後で後悔します。

 
具体的には、次の2つの原因と解決方法が考えられます。

(1)変数を定義していない

原因

次のプログラムのように、いきなり変数(kekka)を使っていると発生します。

 

解決方法

変数を使う前に、Dimステートメントで変数を定義しましょう。

 
「変数の定義」とは、「この名前の変数を使うよ」とVBAに教えてあげることです。この時に名前だけでなく、型(何を保存するか)をAsの後ろに記述します。

主な型
・文字の時:String
・整数の時:Long
・小数点以下がある数値の時:Double

 

(2)スペルを間違っている

原因

「変数の定義をしているのにエラーが表示される・・・」とハマってしまうのが、スペルミスをしている時です。

プログラムを組んでいる時は正しく入力したつもりなので、自分ではなかなか気付けないこともあります。

 

解決方法

変数定義と、変数を使用している箇所で名前を一致させます。
今回の例だと、kakka→kekkaに修正します。

POINT
スペルミスはもったいないので、次の2つの方法でできる限り減らしましょう。
1.タイピングは極力しないで、コピー&ペースト
2.変数名を途中まで入力して、Ctr+Spaceで入力候補から選ぶ

 

関連記事

VBAエラー原因・解決方法
VBAエラー原因・解決方法
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
タイトルとURLをコピーしました