- 締切済み
VBAの配列のLengthについて
はじめまして。 配列の要素の数を出力したいのですが、「修飾子が不正です」と表示されてしまいます。 ネット上の入門サイトで記載されている通りに.Lengthを配列に付けているのに謎です。 どなたか助言をいただければ幸いです。よろしくお願いいたします。 Sub debag() Dim xxx(10) Dim count xxx(1) = 1 xxx(2) = 3 count = xxx.Length MsgBox (count) End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mt2008
- ベストアンサー率52% (885/1701)
回答No.2
VBAにはLengthが無いからUboundを使うというのはNo.1の方の回答通り。 でも、もしかして配列の中で何か値が入っている要素数を求めたいという事でしたら、UBoundでも、もちろんLengthでも求まりません。 #UBound(xxx)では要素数である10が返ります。 その場合、以下のようにします。 count = 0 For i = 0 To UBound(xxx) If IsEmpty(xxx(i)) = False Then count = count + 1 Next i MsgBox (count)
- Siegrune
- ベストアンサー率35% (316/895)
回答No.1
VB.net以降(VB2005等)と違って VBAでは、.Lengthなんてありませんが。 配列の最大要素を求めるときは、 ubound(xxx) を使います。 なお、通常、0から始まります(option baseの指定で1からに変更も可能。lbound(xxx)で 調べることができます)ので、lengthとは1ずれるかと思います。
お礼
ご丁寧にありがとうございます! 便利なやり方を教えていただき幸いです。 是非利用させていただきます。