Home » エクセルマクロ・Excel VBAの使い方 » Collectionが空か判定する

「vba collection 空 判定」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

VBAのCollectionオブジェクトが、

空かどうかを判定するには、どうすればいいのかを探していた方による検索でしょう。

検索キーワード
「vba collection isEmpty」
でアクセスした方も、同じ目的だった可能性が高いと考えています。

「空」と表現されているのが、どのような状態かの判断が難しいところですが、Collectionオブジェクト自体がNothingなのではなく、要素が存在していない状態かな、と私は考えています。

[スポンサードリンク]

Collectionが空か判定するサンプル

以下のSubプロシージャを実行すると「空ではありません。」と、メッセージボックスが表示されます。

Sub Collectionが空かを判定する()
 Dim coll As Collection
 Set coll = New Collection

 coll.Add "001"

 If coll.Count = 0 Then
  MsgBox "空です。"
 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が空か判定する

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.