- ベストアンサー
エクセル セル範囲にデータが記入されているかを知りたい
いつもお世話になります。 エクセル2000を使用しています。 「セル範囲のA2~B20に、データが含まれているセルが一つもない場合は、処理を実行しない。一つでも存在する場合は以下の処理をする」 というマクロを書こうとしているのですが 「セル範囲のA2~B20に、データが含まれているセルが一つもない」、「一つでも存在する」 という意味の式の書き方が分かりません。 お手数ですが、教えていただけますでしょうか。 また、現在はエクセルのVBA入門書程度のもの("できるEXCEL2000 マクロ&VBA編")しか手元にないのですが、このようなことが分かりやすく理解できる書籍などをお知りでしたら、教えていただけますでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、例えば、シート上の普段使わないセルに =COUNTBLANK(A1:B20) と記述しておき、そのセルの値で判断する方法はいかがでしょう。私ならそうします。たとえば、セルC1に =COUNTBLANK(A1:B20) と記述した場合、 If Range("C1").Value = 40 Then Msgbox "オール空白" Else Msgbox 40 - Range("C1").Value & "個のデータ" End If となります。
その他の回答 (1)
- holy_wind
- ベストアンサー率30% (3/10)
VBAだけで処理を行う場合は、下記で出来ると思います。 A、B列について1レコードずつデータがあるか調べていくという単純なものですが・・・ '変数宣言 Dim Sheetname As String 'シート名 Dim Record As Integer 'レコード位置 Dim End_Record As Integer '最終レコード '変数設定 Sheetname = "Sheet1" 'シート名 Record = 2 '開始レコード End_Record = 20 '最終レコード 'A列,B列が空白で、Recordが20以下のときはRecordに1加える(それ以外はwhileループを抜ける) Do While (Sheets(Sheetname).Cells(Record, 1).Value = "" And Sheets(Sheetname).Cells(Record, 2).Value = "" And Record <= End_Record) Record = Record + 1 Loop '判定 If Record <= End_Record Then データがある場合の処理 Else データが無い場合の処理 End If
補足
ありがとうございます。 早速使ってみます。
お礼
目からウロコとはこのことでしょうか。この形なら、「リストの5割以上にデータがある時」など、アレンジも色々出来て今まで出来なかったことが一気に解決してしまいました。 大変ありがとうございました。