「ユーザー定義型は定義されていません。」の原因・解決方法

エラー内容

VBAコンパイル時に、「ユーザー定義型は定義されていません。」と表示される。

原因と解決方法

3つの原因と、その解決方法が考えられます。

原因1.型指定のスペルが間違っている

解説

変数宣言する時に、型指定のスペルが間違っているのが原因です。

 

解決方法

型のスペルミスを修正します。

こういうミスは時間の無駄なので、できるだけCtl + Spaceで入力候補一覧から
選択して入力しましょう!

 

原因2. ライブラリの参照設定が足りていない

解説

ライブラリの参照設定が足りていないのが原因です。

ライブラリには、特定の目的ごとに必要な型や定数、関数などが定義されています。
よく使うライブラリとしては、

  • Microsoft Scripting Runtime:ファイルやフォルダ操作する
  • Microsoft Outlook 16.0 Object Library:Outlookを操作する

などがあります。

このライブラリを参照設定することで、ライブラリにある機能を使うことができるようになります。

ライブラリ名や、その機能はおぼえなくてOKです。
必要な時にその都度しらべれば大丈夫です。

サンプルソースでは、必要なライブラリを参照設定していないとエラーとなります。

 

解決方法

エラーが発生している場所を確認し、何のライブラリが必要かネットなどで調べます。
その後、必要なライブラリを参照設定で追加します。

参照設定の方法
1.[ツール]→[参照設定]と選択します。

2.参照設定一覧から、必要なライブラリにチェックを入れ、OKをクリックします。

今回のサンプルソースでは、型FileSystemObjectがエラーとなっています。
なので、ファイルやフォルダ操作するライブラリ「Microsoft Scripting Runtime」を参照設定します。

 

原因3. 他のモジュールに定義がある

解説

型の定義が他のモジュールにあり、Privateで宣言されているのが原因です。
Privateで宣言されていると、そのモジュール内でしか使えません。

解決方法

Private宣言をPublic宣言に修正します。

 

Public宣言にすることで、他のプログラムに影響がないかは要確認です!

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
VBAエラー原因・解決方法
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました