dポイントプレゼントキャンペーン実施中!

EXCEL VBA 2010で2018/2/29とか、2018/6/31と入力された場合、カレンダーにない日なので間違いとわかる関数はないでしょうか?

A 回答 (4件)

>カレンダーにない日なので間違いとわかる関数はないでしょうか?


EXCEL VBA では、IsDate 関数を使います。

'//参考例:
Sub DateChecker()
Dim myDate As Variant 'あえてバリアント型にする
Do
 myDate = Application.InputBox("日付を入れてください。'yyyy/m/d'", "日付入力", Format(Date, "yyyy/m/d"), Type:=2) '文字列
 If myDate = False Then Exit Sub 'Escで離脱
 If IsDate(myDate) = False Then
  MsgBox myDate & " その入力の日付は存在しません。", vbCritical
 End If
Loop Until IsDate(myDate) 'IsDate がTrue になるまで繰り返す

MsgBox myDate & "は、日付として認識しました。", vbInformation
End Sub
    • good
    • 3
この回答へのお礼

早い」回答、ありがとうございました。
大変わかりやすく、早速使わせていただきました。

お礼日時:2018/07/21 16:20

2018/2/29、2018/6/31と入力された場合、値は文字列になっています。


「条件付き書式」で文字列なら赤くしましょう。※数分待つと動画サイズが大きくなります。
https://photos.app.goo.gl/MisykPZLfAo9pntm6
    • good
    • 0

[No.1]の続きだけど、


私が示した式でエラーにならない「カレンダーにない日」が例外として1日だけあります。
1900/2/29 です。知る人ぞ知る?
    • good
    • 0

入力するセルを A1 としたとき、次式(加減乗除算)は何れも #VALUE! と表示されますが・・・


=E2+0
=E2-0
=E2*1
=E2/1
    • good
    • 0

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

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