「vba collection 空 判定」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
VBAのCollectionオブジェクトが、
空かどうかを判定するには、どうすればいいのかを探していた方による検索でしょう。
検索キーワード
「vba collection isEmpty」
でアクセスした方も、同じ目的だった可能性が高いと考えています。
「空」と表現されているのが、どのような状態かの判断が難しいところですが、Collectionオブジェクト自体がNothingなのではなく、要素が存在していない状態かな、と私は考えています。
Collectionが空か判定するサンプル
以下のSubプロシージャを実行すると「空ではありません。」と、メッセージボックスが表示されます。
Dim coll As Collection
Set coll = New Collection
coll.Add "001"
If coll.Count = 0 ThenMsgBox "空です。"
Else
MsgBox "空ではありません。"
End If
End Sub
つづいて、
coll.Add "001"
の行をコメントアウトして実行しましょう。
今度は「空です。」と表示されます。
即ちCollectionオブジェクトのCountメソッドの戻り値が0ならば、
If coll.Count = 0 Then
Collectionは空であると判定できます。
ウォッチウィンドウでCollection.Countを確認しましょう
拙著『いちばんやさしいPowerPoint VBAの教本』では、ローカルウィンドウを使って変数の中身を確認する実習を繰り返し行っています。
CollectionオブジェクトのCountがプロパティとして作られていたならばローカルウィンドウで確認できたはずなのですが、オブジェクトブラウザーで確認すればわかるとおり、メソッドとして作られてしまっているため、
ローカルウィンドウではCollection.Countを確認できません。
ウォッチウィンドウを使いましょう。
ウォッチウィンドウでCollection.Countを確認する
メニュー[表示]-[ウォッチウィンドウ]を実行してウォッチウィンドウを表示したら、
If coll.Count = 0 Then
の「coll.Count」をウォッチウィンドウにドラッグ&ドロップして、ウォッチ式を追加します。
ステップ実行を開始し、
Set coll = New Collection
が実行されるとcoll.Countは「0」になり、
つづいて、
coll.Add "001"
が実行されると「1」になることを確認できます。
Home » エクセルマクロ・Excel VBAの使い方 » Collectionが空か判定する