VBAエラー:ユーザー定義型は定義されていません。の原因と対処法3選!

【VBA】ユーザー定義型は定義されていません。の原因と対処法!

VBAで「ユーザー定義型は定義されていません。」のエラーが発生し困ったときはないでしょうか。

けど、そんな中で悩むことは、

・VBA「ユーザー定義型は定義されていません。」のエラーの原因がわからない
・VBA「ユーザー定義型は定義されていません。」のエラーの対処法がわからない

ですよね。

今回はそんなお悩みを解決する

・VBAエラーで「ユーザー定義型は定義されていません。」の3つの原因と対処法

についてまとめます!

エラー原因その1:参照設定が抜けている

VBA「ユーザー定義型は定義されていません。」のエラー原因その1は参照設定が抜けている場合となります。

外部のアプリケーションやライブラリ、モジュールに定義されたオブジェクトや変数を呼び出すと、そのようなものは現行環境には存在しないという形でエラーが発生します。

サンプルはOutlookアプリケーションを宣言していますが、「Outlook 16.0 Object Library」の参照設定がないためエラーとなるパターンとなります。

タカヒロ
タカヒロ
よくお問い合わせをいただく内容です。

エラー原因その2:参照設定しているアプリケーションのバージョンがあっていない

VBA「ユーザー定義型は定義されていません。」のエラー原因その2は参照設定しているアプリケーションのバージョンがあっていない場合となります。

例えばライブラリの「Outlook 16.0 Object Library」で設定していた場合、古いOffice製品で開いてVBAを実行しようとすると、バージョン16のオブジェクトライブラリは存在しないため、参照設定のリンクが外れた状態となりエラーとなります。

エラー原因その3:ユーザー定義型の記載ミスがある

VBA「ユーザー定義型は定義されていません。」のエラー原因その3はユーザー定義型の記載ミスがある場合となります。

宣言型に記述ミスがあると、オブジェクトや変数の宣言で標準ライブラリにも存在しない宣言型として判断されるためエラーが返ります。

例えば、「As Outlook.Namespace」とすべきところを「As Outlook.Namespace1」とすると

エラーとなります。

エラー原因その1:参照設定が抜けている場合の対処法

エラー原因その1:参照設定が抜けている場合の対処法は、宣言型に該当するアプリケーションやモジュールの参照設定を行うことです。

ExcelからOutlookアプリケーションを実行する場合であれば「Microsoft Outlook XX.X Object Library」の参照設定にチェックを入れます。

①Excelを起動し、「開発」タブをクリックします。

②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。

③「Microsoft Outlook XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。

エラー原因その2:参照設定しているアプリケーションのバージョンがあっていない場合の対処法

エラー原因その2:参照設定しているアプリケーションのバージョンがあっていない場合の対処法は、実行環境に存在しないアプリケーションの参照設定を外し、存在するアプリケーションへチェックを入れ設定をし直します。

エラー原因その3:ユーザー定義型の記載ミスがある場合の対処法

エラー原因その3:ユーザー定義型の記載ミスがある場合の対処法は、ミスを訂正しましょう。
■訂正前

■訂正後

さいごに

いかがでしょうか。

今回は、

・VBAエラーで「ユーザー定義型は定義されていません。」の3つの原因と対処法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です