0
初めて関数が呼び出されたときに静的変数を1に初期化しようとしました。どのように正しく行うには?これは型の不一致エラーです。VBA変数が設定されているかどうかをチェックする方法は?
Static clip_success As Integer
If clip_success Is Nothing Then
clip_success = 1
End If
初めて関数が呼び出されたときに静的変数を1に初期化しようとしました。どのように正しく行うには?これは型の不一致エラーです。VBA変数が設定されているかどうかをチェックする方法は?
Static clip_success As Integer
If clip_success Is Nothing Then
clip_success = 1
End If
任意のプリミティブ値の型は、デフォルト値で初期化されます。値が0
の数値型の場合文字列の場合は、""
(空文字列)です。日付は、1899-12-30
です。 Boolean
はFalse
に初期化されます。
静的変数はフラグとよく似ています。おそらくBoolean
になるはずです。
Variant
は、特別な値Empty
で初期化されます。
オブジェクト参照はすべてNothing
/null参照で初期化されます。
ので:
Static clip_success As Long
If clip_success = 0 Then
clip_success = 1
End If
それとも
Static clip_success As Date
If clip_success = CDate(0) Then
clip_success = DateTime.Now
End If
それとも
Static clip_success As String
If clip_success = vbNullString Then
clip_success = "success!"
End If
それとも
Static clip_success As Variant
If IsEmpty(clip_success) Then
clip_success = 1
End If
すぐに `clip_success`が '0'の値を持つことになり、それを定義するよう
それとも
Static clip_success As Object
If clip_success Is Nothing Then
Set clip_success = New [some class]
End If
。 – YowE3K
'clip_success = 0 Then' –
OK、ありがとうございます。 – user1141649