アプリ版:「スタンプのみでお礼する」機能のリリースについて

excel2003を使用しています。
以下のような表があります。

コード  社名  終了日
 A   あ社   6/1
 B   い社       
 C   う社     

終了日に日付が入ったら別シートにその結果をコピーしたいのですが、もし、終了日に日付がまったくない時は、オートフィルタを設定しないか、コピーをしないかにしたいです。
この表一つでしたらマクロを実行しない方法もあるのですが、実際は複数の表を同時にオートフィルタしてコピーしてしまっているので、終了日に日付のまったくない表もあり、その場合、抽出結果をコピーした表がおかしくなります。
説明が不十分かも知れませんが、よろしくお願いいたします。

A 回答 (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
    • good
    • 0
この回答へのお礼

確かに言葉足らずでした。申し訳ありません。
しかし、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

を使いましたら、思ったようになりました。
ありがとうございました。感謝いたします。

お礼日時:2006/06/05 15:47

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