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が帰るというところです。

ではでは

この記事が気に入ったらサポートをしてみませんか?