Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2714 / 13645 ツリー ←次へ | 前へ→

【66436】セル個数 RIKKKY 10/9/4(土) 14:22 質問[未読]
【66445】Re:セル個数 UO3 10/9/4(土) 19:30 発言[未読]
【66449】Re:セル個数 RIKKKY 10/9/4(土) 22:23 お礼[未読]
【66447】Re:セル個数 kanabun 10/9/4(土) 21:11 発言[未読]
【66448】Re:セル個数 kanabun 10/9/4(土) 21:30 発言[未読]
【66450】Re:セル個数 RIKKKY 10/9/4(土) 22:24 お礼[未読]

【66436】セル個数
質問  RIKKKY  - 10/9/4(土) 14:22 -

引用なし
パスワード
   特定の範囲のすべてのセルについて、0か未入力であるセルの個数を変数Xに取り込みたいのですが、VBAですと、どうプログラミングしたらいいのか分かりませんでした.
WorksheetFunctionで関数を用いるしかないのでしょうか.

【66445】Re:セル個数
発言  UO3  - 10/9/4(土) 19:30 -

引用なし
パスワード
   ▼RIKKKY さん:

>>WorksheetFunctionで関数を用いるしかないのでしょうか.

こんばんは
WorksheetFunctionも「立派なVBA部品」ですが、それじゃ具合悪いということ
でしょうか?

【66447】Re:セル個数
発言  kanabun  - 10/9/4(土) 21:11 -

引用なし
パスワード
   ▼RIKKKY さん:
おじゃまします。

>0か未入力であるセルの個数を変数Xに取り込みたい

>WorksheetFunctionで関数を用いるしかないのでしょうか.

WorksheetFunction は CountBlankじゃまずいし...
どの関数を使うのか、すぐには分かりませんでした(ToT)

地道に... 以下でなら一応できましたけど

Sub Try2()
 Dim x As Long
 Dim c As Range
 
 For Each c In Selection
   Select Case c.Value
    Case Empty, 0
     x = x + 1
   End Select
 Next
 
 MsgBox x
End Sub

【66448】Re:セル個数
発言  kanabun  - 10/9/4(土) 21:30 -

引用なし
パスワード
   ▼RIKKKY さん:

>WorksheetFunctionで関数を用いるしかないのでしょうか.

別の作業用範囲を使ってもいいのなら、
Loopしなくて こうですかね?

Sub Try1b() '--------- 別セルに 転記していいなら
 Dim r As Range
 Dim x As Long
 With Selection
   Set r = Range("CC1").Resize(.Rows.Count, .Columns.Count)
   r.Value = Application.Substitute(.Cells, "0", "")
   x = WorksheetFunction.CountBlank(r)
   r.Clear
 End With
 MsgBox x
End Sub

【66449】Re:セル個数
お礼  RIKKKY  - 10/9/4(土) 22:23 -

引用なし
パスワード
   UO3 さん

返信ありがとうございます。
いえ、VBAならばもっとエレガントに書けるかなぁーと思ったものですから。

【66450】Re:セル個数
お礼  RIKKKY  - 10/9/4(土) 22:24 -

引用なし
パスワード
   kanabun さん

すばらしい回答をありがとうございます。
とても勉強になりました。
また、質問させていただくことがあるかと思いますが、
その節はどうぞよろしくお願いいたします。

2714 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free