プロが教える店舗&オフィスのセキュリティ対策術

いつも皆様には大変お世話になっております。

早速の質問ですが、

    A    B     C     D     E
1
2       123
3       123
4       123
5       123
6
7       123
とエクセルのセルがなっている場合の
上のB2から下のB7までのセルの個数を所得したいのです
B8以降にも数字が入る場合があるのと間に空白が入る場合があるので
困っています。
B2のセルは固定となっているのでB2からの判別で問題ない状況です。
どうぞ皆様お知恵をお借りしたく思っておりますのでよろしくお願いいたします。

A 回答 (4件)

あえて意地悪な回答をすると、B2からB7までのセルの個数は6個です。


間に空白があろうが、B8に数字が入ろうが、B2からB7までのセルの個数は6個です。

もし、B列で数値が入っているセルの個数を数えるなら、=COUNT(B:B) です。
もし、B列で空じゃないセルの個数を数えるなら、=COUNTA(B:B) です。

数えたい対象のセルの条件をはっきりさせましょう。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
簡単に書いてしまいましたが
実はB1からB20まではいろいろなデータが入っているために
困っていました・・・
もうちょっと詳しく書けばよかったですね・・・すいません

お礼日時:2008/06/04 15:05

VBAでなく関数でできます。


=COUNTA(B2:B7)
で空欄以外のセルをカウントします。

VBAでもできますが、必要を感じません。
Sub xxx()
Set r = ActiveSheet.Range("B2:B7")
n = Application.WorksheetFunction.CountA(r)
MsgBox n
End Sub
    • good
    • 2
この回答へのお礼

実はVBAの一部の部分にカウントした個数を使いたいと思っていたため
VBAとしていました。
説明不足ですいません。

お礼日時:2008/06/04 15:07

質問が非常に不明確なのですが・・・



所得?取得ですよね?

単にB2:B7のセルの個数をVBAで取得するなら
MsgBox Range("B2:B7").Count

B2:B7の空白でないセルの個数なら
MsgBox Application.CountA(Range("B2:B7"))

B7まででなくB2からB列のデータがある最後までのセル個数なら
MsgBox Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Count

B2からB列のデータがある最後までの空白でないセル個数なら
MsgBox Application.CountA(Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row))
    • good
    • 21
この回答へのお礼

取得ですね・・すいません
3番目のMsgBox Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Count
を使わせてもらいます。
&の使い方がいっつも悩んでしまいます・・・
もうちょっと勉強がんばります・・・・
ぴったりの回答ありがとうございました。

お礼日時:2008/06/04 15:11

> 上のB2から下のB7までのセルの個数を所得したいのです


「B2からB7まで」と言われているので、セル数を数えたいなら「7-1」で6で得られますから、
多分そんなことではなくて、データの入ったセル数を数えたいのでしょうね。
(質問文には、明確には書かれていませんが...)
VBAなど使わなくても(やり方がわからないと、何でもVBAは要注意です)
=COUNT($B$2:$B$7)
で可能です。
COUNT関数は指定した範囲内のデータがある個数を返します。
ただし、「0」が入っていると数字なので、カウントしてしまいます。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!