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

ワークシート関数でセル内が日付かどうか調べるものはないでしょうか?
VBAのIsDateなら存じておりますが。

A 回答 (4件)

日付を表すデータは、セルの値としては、単なる数値なのですが、どういう種類のセルの書式が設定されているかを調べることはできます。


調べたいセルがA1だとして
=cell("format",A1)

"D1"になれば概ね日付だと判別できます。
時刻を含めたものにする場合は、
Dで始まることをチェックすればいいかも。
詳しくは、CELL関数のヘルプを参照してください。
    • good
    • 13
この回答へのお礼

ありがとうございます。

> 日付を表すデータは、セルの値としては、単なる数値なのですが、

言われてみれば、まったくその通りでしたね。
勉強になりました。

お礼日時:2005/01/06 17:05

Sub test01()


For i = 1 To 5
MsgBox Cells(i, 1).NumberFormat
Next i
End Sub
上記は、日付書式の種類が一般的には多すぎて、IFで聞くにしても破綻する。
しかし日付書式の種類をそのシートでは、一種や数種に絞っている場合は使えるかもしれない。
本質的には、日付は整数値で書式でもって初めて日付たりうるものである。例えば37345が整数か日付(2002/3/30)かは書式で決まる。
    • good
    • 3
この回答へのお礼

> 本質的には、日付は整数値で書式でもって初めて日付たりうるものである。例えば37345が整数か日付(2002/3/30)かは書式で決まる。

仰せのとおりでございます。
ありがとうございました。

お礼日時:2005/01/06 17:11

#2の方の方法の場合、日付というより数値だったら全て○になってしまいます。

    • good
    • 1
この回答へのお礼

そうですね、ありがとうございます。

お礼日時:2005/01/06 17:08

VBAのIsDateにあたる関数は分かりませんが、


以下の方法で確認は可能かと思います。

「=IF(ISERROR(DAY(A1)),"×","○")」
(調べたいセルがA1の場合です)
日付の場合は「○」。日付でない場合は「×」が戻ります。

DAYが、そのセルの値から日を返す関数なので、
日付以外の値の場合は、「#VALUE!」というエラーとなります。
それをISERROR関数で調べたらいいかと思いました。

ただ、この方法だとセルがブランクの場合に「○」となってしまうので、もう少し工夫が必要かもしれません。
    • good
    • 7
この回答へのお礼

ありがとうございました。

お礼日時:2005/01/06 17:05

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A