プロが教えるわが家の防犯対策術!

B1セルからB500セルまでの間に、
空白セルがいくつあるかを数えるマクロを作りたいのですが…。
自分では作れません。
作ってください!!!
お願いします。

A 回答 (3件)

みなさんの回答のように関数でできますが、無理やりマクロにすると、こんなものですか。

最初はワークシート関数を使っています。2つ目は関数を使わず、数えています。結果をC1、C2に書き出します。
参考にして下さい。

Sub KuuhakuCount()
Range("C1") = WorksheetFunction.CountBlank(Range("B1:B500"))
End Sub

Sub KuuhakuCount2()
Dim rg As Range 'セル
Dim ct As Long 'カウンタ
For Each rg In Range("B1:B500")
ct = ct + Abs(rg = "") '空白なら件数をカウント
Next
Range("C2") = ct
End Sub
    • good
    • 0
この回答へのお礼

2つ目の方が「!!!」な感じ。
ありがとうございました。

お礼日時:2001/07/20 13:51

エクセルはあんまり詳しくないですが、


500-Counta(B1:B500)とかは?
    • good
    • 0
この回答へのお礼

お返事ありがとうございます・・・
でも、実はマクロで作りたかったー。
またいつか、お世話してください。

お礼日時:2001/07/20 13:50

式ではだめでしょうか?


マクロより式を使った方が早いと思いますよ。

=COUNTIF(B1:B500,"")

式はだめで、計算用のセルがある場合
Cells(501,2) = "=COUNTIF(B1:B500," & Chr(34) & Chr(34) & ")"
上記は、B501セルに"=COUNTIF(B1:B500,"")"を入力の意味
で、cells(501,2)の値を参照すれば値が取れます。
値が邪魔なら、取得した後に
cells(501,2) = ""
を実行し、クリアする。

一時的にもセルを使用できない場合はループ(For Next)を使って
地道に勘定するしか思いつかないです。
cnt = 0
for i = 1 to 500
if cells(i,2)="" then cnt = cnt + 1
next

もっと効率の良い関数があるのかもしれませんが...
    • good
    • 0
この回答へのお礼

試してみます…
ありがとうございました。

お礼日時:2001/07/20 13:52

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