VBAでディクショナリの初期化を判定しよう!
配列の初期化はすでに書きましたが、ディクショナリの場合はどのようになりますでしょうか。
こんな感じでできました
インターネットで検索した記事ではディクショナリの初期化を判定できるとあったコードはUbound(dic)で生じるエラーで判定しようとしており間違っていたので以下のように書いてみました。
'==================================================
Function IsInitDic(ByRef dic As Variant) As Boolean
'==================================================
On Error Resume Next
err.Clear
Dim dicCount As Long
dicCount = dic.Count
If err.Number = 0 Then
'処理なし
Else
End If
IsInitDic = (err.Number = 0)
End Function
エラー判定はdic.countとし、ここでエラーがでれば、err.Numberは0とならないためこの関数でFalseが帰り、ここでエラーがでない(ディクショナリになっている)のであれば 、Trueが帰るというところです。
ではでは