• ベストアンサー

エクセル VBA セルの個数を所得する

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

  • nanny
  • お礼率55% (72/129)

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

質問が非常に不明確なのですが・・・ 所得?取得ですよね? 単に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))

nanny
質問者

お礼

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

その他の回答 (3)

noname#79209
noname#79209
回答No.4

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

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

VBAでなく関数でできます。 =COUNTA(B2:B7) で空欄以外のセルをカウントします。 VBAでもできますが、必要を感じません。 Sub xxx() Set r = ActiveSheet.Range("B2:B7") n = Application.WorksheetFunction.CountA(r) MsgBox n End Sub

nanny
質問者

お礼

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

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

あえて意地悪な回答をすると、B2からB7までのセルの個数は6個です。 間に空白があろうが、B8に数字が入ろうが、B2からB7までのセルの個数は6個です。 もし、B列で数値が入っているセルの個数を数えるなら、=COUNT(B:B) です。 もし、B列で空じゃないセルの個数を数えるなら、=COUNTA(B:B) です。 数えたい対象のセルの条件をはっきりさせましょう。

nanny
質問者

お礼

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

関連するQ&A

  • exelでセルの個数を数えたいんですが…

     どなたか教えて下さい。エクセルでセルの個数を数えたいんですが、普段私が使っているのは、COUNTA関数で十分だったんですが、これは文字、数値、数式などが入っていれば数えてしまいますよね。下のような表があった場合の数式が入っているセルを数えないようにする関数ってあるでしょうか? B2~B4、D2~D4、F2~F4まで全て数式が入っています。数字は別表から関数を使い出した数字です。それぞれB2~B4、D2~D4、F2~F4の数字の入っているセルの個数を計算したいです。A,C,D列には一連番号が入っています。)   A   B   C   D   E   F 1 番号     番号     番号   2 1   2   4   1 7 3 3 2       5   4    8 4 3   2  6       9   1  宜しくお願いいたします。

  • エクセルで指定位置から何セル移動すると空白ではなくなるか?

    A1に計算式を挿入したいのです。 A1からG1セルの間で、A1から何個目が空白ではないセルが あるかというのがしりたいのです? つまり B1、C1、D1には空白を E1には10.5などの数字を F1、G1には空白としたとき A1には3(もしくは4)を表示させたいのです。 COUNTIFでは空白の個数をカウントしますが、ある値までの空白の個数をカウントなんてできますでしょうか? 動的な計算しきにしたくて、今回はB1にセルを挿入して(数字)、次回はまたB1にセルを挿入して今度は空白としていった場合に、最近の値が入ったセルを表示できればと 考えています。 申し訳ございません、説明がクリアーではなくって。 こんなことって可能でしょうか? アドバイスお願いします。

  • エクセル 数式入り等のセルの個数について

    こんにちわ。教えて下さい。 セルの個数を数えたいのですが、下記のいづれかの方法で出来るやり方はありますでしょうか? ☆条件付き書式で色をつけた空白のみのセルの個数の数え方(列に対応) (1)A1に今日又は今日以前の日付が入って、B1にはA1の日付から2週間たっても、何らかの日付・文字が入らない場合は空白の状態で色がつくようになっています。(文字が入力されたら色は無しになります。2条件が1つのセルに設定されています) 一番ベストなのは、この状態で空白で色のついているセルの個数が数えれば一番いいです。 もし、上記で駄目な場合、 ☆C1に別の数式で、B1が空白かそうでないかで、「FALSE」「TRUE」が表示されるように設定して、その状態で「FALSE」の個数を数えるっていうやり方まではわかるのですが、A,B,C列とも、入力していけば行が増えていくので、先にC列に数式をコピーしておくと、A列に日付が入力されていなくても、「FALSE」が表示されます。A列に日付が入力されている行での「FALSE」の数を数えるという方法はありますか? 説明が下手ですみません。。。 つまり、自分がない知恵で思った、2つの方法のどちらかででも、数える方法があれば教えて下さい。もちろん、もっといい方法があれば幸いです。

  • エクセル 空白セルの直前の数字の個数を抽出したい

    エクセルでA1~A27に下のような値と空白のセルが入っています。 空白セルの直前の数字だけ個数を関数を用いて自動でカウントしたいのです。下の表でいうと、 「3」・・・1個 「5」・・・2個 「7」・・・1個 という風に数えたいのですが、どのような関数を用いたらよいのでしょうか。エクセル関数初心者です。よろしくお願いします。 【例表】 空白セル 空白セル 7 6 5 4 3 2 1 空白セル 5 4 3 2 1 空白セル 空白セル 空白セル 3 2 1 空白セル 5 4 3 2 1

  • Excel。列の中で数値が入っているセルの個数を求めたい

    Windouws2000、Excel2000を使用しています。 エクセルで以下のようにセルに数値が入っています。 (空欄) 9 10 9 10 11 (空欄) このとき、(空白以外の)数値が入っているセルの個数を数えたいのです。(つまりこの場合5という結果が欲しい) どのようにすればできるでしょうか。 全体の数はわかっているので空白の個数を求める式でも結構です。 もしくは下記から 0:00 11:00 9:00 10:00 0:00 0:00以外の時刻が入っているセルの個数(または0:00の個数)の求め方でも結構です。(この場合3という結果が欲しい) よろしくお願いします。

  • 入力されているセルの個数を数えるには?

    エクセル2003で表を作成しました。指定した文字を含むセル以外で、入力されているセルの個数を数えるにはどの関数を使えばいいでしょうか?   A   B   C  D   E   F   G 1   アい 2 3     フて   イろ 4 5     エじ 「ア」を含むセル以外で、文字が入力されているセルの個数は?

  • エクセルVBAを使って複数セルをひとつのセルにまとめたいのですが。

    以前投稿されていたもので、やってみたのですが、うまくいかなかったので質問いたします。 E3~E42までのセルの情報をB3へまとめたいのです。 また、E3~E42のうちなにも書かれていないセルは、まとめないようにしたいです。空白になっているセルは、最後に記載されているセル以降空白になる状況となります。 今後の運用面を考え、この手法をとりたいのですが、よい方法はありますでしょうか。   A列 B列 ・・・ E列 3    111      111      222      333      444 4           222 5           333 6           444 7 8 9 質問の説明が足りないようでしたら、ご指摘ください。 よろしくお願いします。

  • EXCELのセルの個数の算出

    文字や数値を含んだセルの数を求めたいのですが・・・ それだけならわかるのですが、 式を含んだ場合がわかりません。 VBAは使わずに求めたいのですが・・・ 例えば、A1にあ、B1に10、C1に=IF(D1="","",D1) と入力されているとします。 A1~C1の範囲で、D1に何も入力されていない時はセルの個数を2、 D1に何か入力されたらセルの個数は3としたいのです。 要するに、見た目上何かセルに入ってれば、 個数の対象としたいのですが・・・ どなたかおわかりになられるかたがおられましたら、 是非ともよろしくお願い致します。

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

  • Excelで、一方のセルになくて、もう一方のセルにある数字の個数が知りたい

    下記のような表があります。    A  B 1  9 2  9  1 3  9  1 4     1 5     1 6  7  9  1 この表で、A列は空白でB列のみに数字が入っているセルの個数(上記の場合"2")を、 表示されているBOOKではなく、他のBOOKに表示させる関数、計算方式はあるでしょうか? よろしくお願いします。

専門家に質問してみよう