私はWindows 7を使用していて、プロジェクトはVB 6.0にあります。プログラムの実行中にエラーが発生します。次のエラーが表示されます。
ユーザー定義タイプが定義されていません。
これが私のコードです:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "trace": Call mntrace_Click
Case "snrplot": Call mnSnrplot_Click
Case "skyplot": Call mnskyplot_Click
Case "nmea": Call mnNmea_Click
Case "navigation": Call mnNavigation_Click
Case "survey": Call mnSurvey_Click
Case "pause/start": Call mnpause_Click
Case "save": Call mnsave_Click
Case "print": Call mnprint_Click
Case "offline": Call mnoffline_Click
End Select
End Sub
このエラーを解決するにはどうすればよいですか?
エラーが発生すると、コンパイラーは関数宣言の最初の行を自動的に強調表示します。つまり、その行のどこかでエラーが発生します。時にはそれはあなたが望むほど役に立たないかもしれませんが、この場合、それはあなたにかなり多くを伝えることができます。
具体的には、関数宣言に表示される唯一の「ユーザー定義タイプ」(実際には、唯一の「タイプ」)はMSComctlLib.Button
。コンパイラのエラーメッセージがここに伝えているのは、MSComctlLib.Button
です。したがって、ユーザーが何を話しているのかわからないことが多いため、「ユーザー定義」型であると想定しています。 :-)
どちらの方法でも、修正は簡単です。コンパイラにMSComctlLib.Button
です。この場合、それがユーザー定義型であると想定することは間違っていました。実際には、Microsoft Windows Common Controls Libraryで提供されるbuttonコントロールです。 VB 6にこのコントロールについて伝えるには、対応するコンポーネントをプロジェクトに追加する必要があります。次の手順に従ってください:
「プロジェクト」メニューから「コンポーネント」を選択します。
表示されるダイアログボックスで、リストの約2/3をMまでスクロールします。 「Microsoft Windows Common Controls 6.0」と「Microsoft Common Controls-2 6.0」の両方の項目でチェックを入れます。 (サービスパックの指定が異なっていても心配はいりません。)
OKボタンをクリックします。手っ取り早い場合は、ツールボックスに追加されている追加のコントロールが表示されます。これらは、追加したコンポーネントライブラリによって提供されるコントロールです。これらのコントロールの中には、Button
と呼ばれるものがあります。
最後に、プロジェクトを再度コンパイルして実行してみます。今度はコンパイラがMSComctlLib.Button
タイプです。それでも表示されない場合は、ツールバーに表示されるボタンです。ツールバーコントロールはCommon Controlsライブラリによって提供され、そのツールバーに表示される個々のボタンを定義するタイプが含まれています。
他の場所からそのコードをコピーして貼り付けたと思います。通常、MSComctlLibを参照する場合は、タイプライブラリにアクセスする前に、最初にここでCody Grayが述べた手順を実行します。
オブジェクトライブラリへの参照がないようです。
(他の場所でエラーなしに実行しましたか?)