0

私はこの単純な Address クラスを持っています。

  Public street as String
  Public number as Integer

次に、モジュール calle "mdl1" 内にインスタンスを作成し、それを同じモジュール関数で使用しています。

Public objectAddress as Address

Public Function f1() As String
  Set objectAddress = New Address
  objectAddress = "5th street" 'this works fine

  If Not isNothing() Then
    f1 = objectAddress.street
  Else
    f1 = vbNullString
  End If

End Function

Public Function isNothing() As Boolean

'When entering here, the objectAddres is ALWAYS Nothing, even though i just assigned a value to the street property...

  If objectAddress is Nothing then
    isNothing = True
  Else
    isNothing = False
  End If
End Function

関数の objectAddress.street に値を代入しましたf1()が、それが ìsNothing()` 関数に入ると、objectAddress は再び Nothing になります。

そして、コントロールがf1関数に戻ると、オブジェクトは値を持つように戻り、ストリート プロパティにはまだ割り当てられた値があります...

では、モジュールの「プロパティ」はクラスのもののように振る舞うべきではありませんか? または、モジュール内にグローバル/ローカル スコープが存在しませんか?

解決済み: 誰も質問の要点を理解していませんでしたが、問題は、グローバルオブジェクトと同じ名前のローカルオブジェクトを作成していたことでした。そのため、常にNothing別の関数に入ったときでした。

4

0 に答える 0