機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > VBAのエラー

Sub または Function が定義されていません





Callステートメントで呼び出そうとしたプロシージャが、存在しないときに発生します。プロシージャ名の打ち間違いや、別モジュールにあるプロシージャを呼び出そうとしたけど、その呼び出されるプロシージャがPrivateだったようなケースです。

プロシージャを呼び出そうとして「そのプロシージャ名は分からない」とエラーになるのでしたら、エラーの原因を理解しやすいのですが、下図のように、単純なタイプミスが原因で、このエラーが起こる場合もあります。


RangaではなくRangeです・・・


CellssではなくCellsです・・・

これは、RangaやCellssのように、プロパティ名が間違っているのですが、VBAはここで「○○(〜)」を「○○という名前のプロシージャを呼び出している」と誤認します。そして「Rangaなんて名前のプロシージャは見あたらないっス」というエラーになります。同じ打ち間違いでも、「○○(〜)」がプロシージャの呼び出しと誤認されないようなケースもあります。次のコードはプロパティ名を間違えていますが、別のエラーになります。

Sub Sample()
    ActiveSheet.Ranga("A1") = 100
End Sub



同じ「○○(〜)」ですが、その前にActiveSheetがありますので「Ranga("A1")」は、別プロシージャの呼び出しではなく、プロパティの指定と認識されます。プロパティ・・・つってもRangaなんてプロパティはありませんから「そんな名前のプロパティはないっスけど、何か?」というエラーになります。



このエントリーをはてなブックマークに追加