2017-11-20 5 views
1

1つのモジュール(main)と1つのuserformモジュール(myUserForm)を持つプロジェクトがあります。 私はモジュールmainの上にグローバルとして変数を宣言します。そして、私はモジュールmain内で私の変数を設定し...Module1で初期化され、UserFormモジュールで使用される変数を宣言します。

Dim myGlobal As MyType 

Public Sub mySubInMain() 
    Set myGlobal = New MyType 
End Sub 

...しかし、私はそれを使用しようとすると、モジュールmyUserFormに:

Private Sub oneSubOfTheForm() 
    myGlobal.Name = "something" 
End Sub 

...私はObject required例外を取得します。私の変数myGlobalを他のスタックに住んでいると宣言する必要はありますか?

答えて

3

変数がmainと呼ばれるモジュールであり、そしてあなたがそれPublic宣言、すなわち

Public myGlobal As MyType 

あなたはmain.myGlobalとして(または単にmyGlobalとして、ユーザーフォームで参照することができるはずですが、それがある場合それがどこにあるのかが分かりやすいように、通常はそれを修飾する方がよい)。

0

標準モジュールのパブリックプロパティを使用してオブジェクトを取得し、その状態を制御できます。

0

例外状態として、myGlobalに何かを割り当てる必要があります。最初にmySubInMainを呼び出してからmyGlobalオブジェクトを使用する必要があります。

関連する問題