导航菜单
首页 >  Sub または Function が定義されていませんの原因  > 「ユーザー定義型は定義されていません。」の原因・解決方法

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

エラー内容原因と解決方法原因1.型指定のスペルが間違っている原因2. ライブラリの参照設定が足りていない原因3. 他のモジュールに定義がある関連記事 エラー内容

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

原因と解決方法

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

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

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

Visual Basic1234567 Sub ErrSample20_01()     Dim lngGoukei As lng  'long型がlngとなっている End Sub 

 

解決方法

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

Visual Basic1234567 Sub ErrSample20_02()     Dim lngGoukei As Long End Sub 

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

 

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

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

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

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

などがあります。

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

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

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

Visual Basic12345678 Sub ErrSample20_03()     Dim objFSO As FileSystemObject  '←変数定義でエラーとなる    Set objFSO = New FileSystemObject End Sub 

 

解決方法

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

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

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

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

 

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

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

解決方法

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

 

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

関連記事 VBAエラー原因・解決方法 成果を出す5つのポイント

相关推荐: