「モジュールではなく、変数またはプロシージャを指定してください。」

エラー

はじめに

 「コンパイルエラー モジュールではなく、変数またはプロシージャを指定してください。」
 と出力された際の原因と対処方法について見ていきます。
 
 普段はあまり目にする事が無いエラーなので戸惑いますが、わかってしまえば何という事はないエラーです。
 
 結論から言いますと、変数名やプロシージャ名と同じ名前のモジュールが存在する場合にこのようなエラーが出ます。
 対処方法は、モジュール名をユニークな名前にして変数名やプロシージャ名と被らないようにすれば解消します。

エラーを再現

 簡単な例を挙げてエラーを再現してみます。
 
 まず、普通に標準モジュールを1つ追加します。
 次に2つ目の標準モジュールを追加しますが、2つ目は、オブジェクト名を「Trim」にします。
 


 この状態から「標準モジュール1」に以下のプログラムを書いて実行してみてください。

 エラーが出ました。
 もう、お分かりかと思いますが標準モジュール名の Trim と、関数の Trim の名前が被っているため命令を実行できない状態になっているというエラーです。
 

対処方法

 原因がわかれば対処方法は簡単です。標準モジュールのオブジェクト名を他の変数やプロシージャ(関数)の名前と被らないように変更すれば解決です。

 上記の場合は、Trim というモジュール名を、TrimModule などとモジュール名を変更すれば解決します。


 同じように、標準モジュール名と同じ名前の変数名、プロシージャ名を付けるのもタブーです。

 モジュール名はそれとわかるように、Module○○とか、○○Module などとして変数名やプロシージャ名と被らないようにしておくと良いでしょう。

コメント

タイトルとURLをコピーしました