• 締切済み

EXCEL 入力された日付のチェック

EXCELのある列に、日付が「2006/5/26」という形式で入力されます。 ですが、入力間違いで、本来ない年月日を入力した場合、エラーとしたいのですが、どのようにするのが、一番効率よいでしょうか。 VBAでプログラムを記述していますので、VBAの記述で教えて頂けますでしょうか。 よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

Sub test02() For j = 1 To 10 If IsDate(Cells(1, j)) Then MsgBox "日付" Else MsgBox "日付でない" End If Next j End Sub エクセルの日付シリアル値の許容数値+日付書式 アポストロフィ+日付 昭和23年4月1日 などが、日付として認識されましたが、検査セルに実際どういう入力がされているケースなのか、そのケースについてテストして使ってください。 日付は入力との関係で、エクセルでは、日付として扱われるケースの理解は一筋縄では行かないようです。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.5

Dim str As String str = "9/31" MsgBox str & " ---> " & IsDate(str) & " : " & Format(str, "yyyy/mm/dd") 上記の場合、IsDate() 関数では日付(1931/9/1)と判断されます。 「年月日」が確実に入力されているなら問題はないでしょう。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

条件付き書式や関数での セルの内容が日付であるか否かの判定は ↓でいけると思います。 条件付き書式 =ISERROR(WEEKDAY(A1)) 関数 =IF(ISERROR(WEEKDAY(A1)),"日付でない","日付である")

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.3

マクロ使わずで・・・・ セル指定してから データの入力規則の 設定画面 で 条件の 入力値の値 「日付」 データ  「次の値より小さい」 次の日付けまでの入力に  =TODAY() にすれば、 当日を含めて過去の年月日入力は◯  明日以降の、年月日入力は× 誤入力すると、メッセージ表示にする。  方法ではだめでしょうか?

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

↓で"Date"が返ってきたら日付、という手もあります。 TypeName(ActiveCell.Value)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

IsDate関数 でできます。 ヘルプに載っています。

関連するQ&A