プロが教える店舗&オフィスのセキュリティ対策術

エクセルでVBエディタでソースコードを記述し、マクロを実行すると、コンパイルエラー、「SubまたはFunctionが定義されていません」とエラーが出ます。これはどういうエラーですか?何が間違っているのですか?

A 回答 (5件)

コードの行の中に


ステートメント、関数、などに見つからない行があるということ
abc
と書くとすると、VBAの予想するあらかじめ決まったステートメント、関数、メソッド、プロパティで存在しないので、
関数Functionプロジュアーか
SUBプロシージャー
を書いたものととりあえず解釈して
それを探すが、別の場所に存在しないのでエラー指摘になる。
Sub test01()
asd
End Sub
のようなのをやってご覧。同じエラーがでるよ。
何をasdに間違ったかは、その行の指摘があれば、作っているものは
すぐ気が付くよ。
上記でasdの位置に
RangeSelectを入れた場合は「SubまたはFunctionが定義されていません」だし
Range("A1")Selectは「構文エラー」だ。微妙なものだよ。
ほんとに何かの事情で関数かSubプロシジュアーが消えたか
名前が変えられたか(1字誤って抹消したり、加わったり)もあるかもしれない。
    • good
    • 1
この回答へのお礼

わざわざ御回答くださいまして有難う御座いました。原因は、単なるミスタイプでした。でも、回答文は勉強になりました。

お礼日時:2008/03/23 20:30

#4の方もおっしゃっている通り、コードを見てみないと適切なことは何も言えません。

私の経験からも、わかってみればほんの些細なことが原因のことも多いものですが、その時にはなかなか気づかないものです。かなり、おせっかいかもしれませんが、コードを改めて投稿欄に手入力する必要はありません。「ツール」→「マクロ」→「マクロ」→「編集」で開いた画面にコードが表示されますので、それをコピーして張り付ければいいのです。但しその際、ユーザー名等、そのままでは個人情報漏洩につながる部分は貼り付けたあと、投稿画面上では削除してくださいね。お互いのためです。
    • good
    • 0
この回答へのお礼

わざわざ御回答くださいまして有難う御座いました。原因は、単なるミスタイプでした。お騒がせ致しまして申し訳御座いませんでした。

お礼日時:2008/03/23 20:34

こんばんは。



良くあるミスですが、たぶん、ローカルモジュールに書いてしまって、それを呼び出そうとしているからではないでしょうか?

Excelの場合のみですが、基本的には、標準モジュールにコードを書いてください。
もしくは、左辺のない文字コードで、呼び出しに該当するプロシージャ等がないものです。

ここのカテゴリでのVBAの質問は、最低限、このエラーを出したコードを見せてください。別に、それが恥ではありません。

なお、Excel VBAは、実行前にコンパイルしています。他のプログラミング言語と同じように、中間言語として、仮想メモリの中に存在していますが、実行ファイルとして出力されていないだけです。
    • good
    • 1
この回答へのお礼

わざわざ御回答くださいまして有難う御座いました。原因は、単なるミスタイプでした。お騒がせ致しました。申し訳御座いませんでした。

お礼日時:2008/03/23 20:32

>これはどういうエラーですか?何が間違っているのですか?



ソースを見ないと何とも言えませんが、ミスタイプなどで何らかのプログラムを呼び出すような記述になっているのだと思います。


Sub test1()
MsgBox aaa()
bbb
End Sub

Function aaa()
aaa = "xyz"
End Function

Sub bbb()
MsgBox "end"
End Sub

Function aaa()やSub bbb()が存在しない場合はエラーが出ます。
    • good
    • 0
この回答へのお礼

わざわざ御回答くださいまして、有難う御座いました。原因は、単なるミスタイプでした。お騒がせ致しまして申し訳御座いませんでした。

お礼日時:2008/03/23 20:27

コード中に、定義してない関数かサブルーチンを使っているという事です。

一行ずつ実行していけば、未定義箇所でエラーになります。

ちなみにエクセルVBAはインタープリターなのでコンパイルはしないと思います。
    • good
    • 0
この回答へのお礼

わざわざご回答を有難う御座いました。原因は、単なるミスタイプでした。お騒がせ致しまして申し訳御座いませんでした。

お礼日時:2008/03/23 20:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!