- ベストアンサー
特定の範囲内に空白セルがいくつあるかを数えるマクロを作りたいのですが。
B1セルからB500セルまでの間に、 空白セルがいくつあるかを数えるマクロを作りたいのですが…。 自分では作れません。 作ってください!!! お願いします。
- みんなの回答 (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
その他の回答 (2)
- Masato_a
- ベストアンサー率21% (13/60)
エクセルはあんまり詳しくないですが、 500-Counta(B1:B500)とかは?
お礼
お返事ありがとうございます・・・ でも、実はマクロで作りたかったー。 またいつか、お世話してください。
- trytrytry
- ベストアンサー率37% (13/35)
式ではだめでしょうか? マクロより式を使った方が早いと思いますよ。 式 =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 もっと効率の良い関数があるのかもしれませんが...
お礼
試してみます… ありがとうございました。
お礼
2つ目の方が「!!!」な感じ。 ありがとうございました。