同様のクラスのインスタンス化プロパティは、静的クラスで使用できます。そのインスタンス化プロパティ「GlobalMultUse」を指定する必要があります。
静的クラスの例:
' Error Class in ClassInstancing ActiveDLL project
Option Explicit
Private m_errorID As Integer
Private m_Description As String
Public Property Get ErrorID() As Integer
ErrorID = m_errorID
End Property
Public Property Let ErrorID(ByVal vNewValue As Integer)
m_errorID = vNewValue
End Property
Public Property Get Description() As string
Description = m_Description
End Property
Public Property Let Description(ByVal vNewValue As string)
m_Description = vNewValue
End Property
Public Function Error() As Error
Dim errorInstance As New ClassInstancing.Error
With errorInstance
.ErrorID = Me.ErrorID
.Description = Me.Description
End With
Set Error = errorInstance
End Function
Public Sub RaiseError(ByVal pErrorID As Integer, ByVal errorSource As String, ByVal errorDesc As String)
Err.Raise pErrorID, errorSource, errorDesc
End Sub
Public Sub ShowError()
MsgBox "Error ID: " & CStr(Me.ErrorID) & vbCrLf & _
"Desc: " & Me.Description
End Sub
GlobalMultiUse Instancing プロパティを使用して、クラスを次のセットとして指定します...
他の標準 EXE プロジェクトでのこのグローバル (静的!) クラスの使用例:
Private Sub Command1_Click()
ClassInstancing.Description = "Sample-1 error using !"
ClassInstancing.ErrorID = 9990
'Dim multiuseClass As ClassInstancing.Error
'Set multiuseClass = ClassInstancing.Error
MsgBox ClassInstancing.Error.ErrorID & vbCrLf & ClassInstancing.Error.Description, vbInformation, "Sample Usage 1"
ClassInstancing.Description = "Sample-2 error using !"
ClassInstancing.ErrorID = 1110
ClassInstancing.ShowError
End Sub
最後に、MSDN のメモ ((MSDN Library Visual Studio 6.0, 'Instancing Property')):
グローバルマルチユース。MultiUse に似ていますが、1 つ追加されています。クラスのプロパティとメソッドは、単なるグローバル関数であるかのように呼び出すことができます。クラスのインスタンスは自動的に作成されるため、最初に明示的に作成する必要はありません。