エラー内容
VBAコンパイル時に、「変数が定義されていません。」と表示される。
原因と解決方法
変数の宣言を強制している時(モジュールの先頭でOption Explicit)に、変数の定義が正しくされていないと発生するエラーです。
注意!
一部のサイトで「変数の宣言を強制しないようにすればいい ⇒ Option Explicitを削除しよう」とあります。
これは絶対NGです。その場しのぎになって、後で後悔します。
一部のサイトで「変数の宣言を強制しないようにすればいい ⇒ Option Explicitを削除しよう」とあります。
これは絶対NGです。その場しのぎになって、後で後悔します。
具体的には、次の2つの原因と解決方法が考えられます。
原因1. 変数を定義していない
解説
次のプログラムのように、いきなり変数(kekka)を使っていると発生します。
解決方法
変数を使う前に、Dimステートメントで変数を定義しましょう。
「変数の定義」とは、「この名前の変数を使うよ」とVBAに教えてあげることです。この時に名前だけでなく、型(何を保存するか)をAsの後ろに記述します。
主な型
・文字の時:String
・整数の時:Long
・小数点以下がある数値の時:Double
・文字の時:String
・整数の時:Long
・小数点以下がある数値の時:Double
原因2. スペルを間違っている
解説
「変数の定義をしているのにエラーが表示される・・・」とハマってしまうのが、スペルミスをしている時です。
プログラムを組んでいる時は正しく入力したつもりなので、自分ではなかなか気付けないこともあります。
解決方法
変数定義と、変数を使用している箇所で名前を一致させます。
今回の例だと、kakka→kekkaに修正します。
POINT
スペルミスはもったいないので、次の2つの方法でできる限り減らしましょう。
1.タイピングは極力しないで、コピー&ペースト
2.変数名を途中まで入力して、Ctr+Spaceで入力候補から選ぶ

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