HOME > エラー対処法 > 「変数が定義されていません」
「変数が定義されていません」エラーの対処方法
「変数が定義されていません」とのメッセージが表示されるエラーの原因ですが、
これはオプション設定の問題となります。その場合の対処方法の手順は以下です。
まず、
@プログラムの一番先頭部に”Option Explicit”という記述が
入っていると思いますが、この1行を削除してください。
次に、
Aオプション設定のデフォルト設定を変更している場合には、上記@の
”Option Explicit”という記述が毎回、プログラムの先頭部分に勝手に
挿入されてしまいますので、以下の設定を確認してください。
VBEの画面(プログラムが表示される画面)の[ツール(T)] → [オプション(O)]
で表示されるオプション画面の[編集」タブの中に、[変数の宣言を強制する]
というチェック項目がありますので、そのチェックがついている場合には
そのチェックを外してください。
【補足説明】
この[変数の宣言を強制する]という設定は、初期のデフォルトではチェック
の付いていないオプション設定ですが、同じPCを使っている他の方が故意
にチェックを入れたか(もしくは、何かでマクロの勉強をした時にここに
チェックを入れておけと言われて入れたか)の可能性があるかと思います。
で、ちょっとプログラム的なことについて説明しますと、
この「変数が定義されていません」というエラーに関しては、
マクロ(VBAのプログラム)の場合には、高級言語とは違って予め変数の定義を
しておかなくても勝手に(機械的に)判断をしてくれますので、特に変数の定義
というのは(上記のAの[変数の宣言を強制する]というオプションをわざわざ設定して
おくという行為は)必要はありませんので、
基本的に、初期設定のままでは「変数が定義されていません」というエラー
は起らないはずのものです。
マクロ言語の類で変数の宣言を強制する言語というのはありません!
変数宣言が必ず必要とされるのはプロ向けの高級言語だけです。
なので、VBAの場合にもこれはオプション(出荷時のデフォルトでは必ずオフの設定)
となっています。
VBAは高級言語としても使えないことはありませんが、
高級言語はプロ向きのプログラム言語ですから、そういう使い方をすれば当然ながら
難易度は高くなって
(素人には覚える必要のない難しい範囲まで勉強しなければならなくなって)
しまいますので、アマチュアの方はそのような使い方は避けるべきものです。
よほどプロ級の長いプログラムを組みたいのなら いざ知らずですが、一般の
Excelユーザ(プログラミング初心者の方)が、
Excel作業の自動化をする為に組むVBAプログラミングでは全く不要です
ので、このオプションは初期設定通りの
「OFF」に戻す事を"強く"お勧めします。
NEXT >>
・変数名の強制オプションは使ってはいけません!その理由がわかりますか?(VBAあるある)