• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オートフィルタで抽出結果がない場合)

オートフィルタで抽出結果がない場合の処理方法

このQ&Aのポイント
  • excel2003を使用しています。終了日に日付が入ったら別シートにその結果をコピーしたいですが、終了日に日付がまったくない時は、オートフィルタを設定しないか、コピーをしないかにしたいです。
  • 複数の表をオートフィルタしてコピーする際に、終了日に日付がまったくない表があると、抽出結果をコピーした表がおかしくなります。
  • この問題を解決するためには、終了日に日付がまったくない場合にはオートフィルタを設定せず、コピーをしないようにする必要があります。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

> 説明が不十分かも知れませんが、... 全然足りないと思います。情報を小出しにしないで、マクロのご質問 ならソースコードを提示した方が、回答をもらいやすいですよ(^^;  # 状況説明に自信がない場合は特に。 オートフィルターを設定するコードは既にあるんですよね? であれば、ご質問の趣旨は、  最終日の入力チェックを VBA で行うにはどうしたら良いか? ってことであっていますか? 今回はデータの整合性(文字列や数値ではなく、ちゃんと日付が入力 されているかどうか)を確認する必要はなさそうです。  # この辺は入力規則で日付しか入力できないようにするなどの方法  # で対応した方が楽です。 何かが入力されて「いる・いない」だけを判定するロジックの一例を 紹介します。ワークシート関数の CountA を利用した方法です。 【前提】最終日の入力範囲は Sheet1 の C1:C10 とする ・データが全くないかを判定する   Dim rngR As Range   Set rngR = Sheet("Sheet1").Range("C1:C10")   If Application.CountA(rngR) = 0 Then     MsgBox "データがないです"   Else     MsgBox "OK ざんす"   End If   Set rngR = Nothing ・1件でも入力漏れがあるか判定する   Dim rngR As Range   Set rngR = Sheet("Sheet1").Range("C1:C10")   If Application.CountA(rngR) < rngR.Count Then     MsgBox "データが入力されていない箇所があります"   Else     MsgBox "OK ざんす"   End If   Set rngR = Nothing

poo1123
質問者

お礼

確かに言葉足らずでした。申し訳ありません。 しかし、KenKen_SPさんのご回答の >・データが全くないかを判定する   Dim rngR As Range   Set rngR = Sheet("Sheet1").Range("C1:C10")   If Application.CountA(rngR) = 0 Then     MsgBox "データがないです"   Else     MsgBox "OK ざんす"   End If   Set rngR = Nothing を使いましたら、思ったようになりました。 ありがとうございました。感謝いたします。