- 締切済み
EXCEL 入力された日付のチェック
EXCELのある列に、日付が「2006/5/26」という形式で入力されます。 ですが、入力間違いで、本来ない年月日を入力した場合、エラーとしたいのですが、どのようにするのが、一番効率よいでしょうか。 VBAでプログラムを記述していますので、VBAの記述で教えて頂けますでしょうか。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
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)
Dim str As String str = "9/31" MsgBox str & " ---> " & IsDate(str) & " : " & Format(str, "yyyy/mm/dd") 上記の場合、IsDate() 関数では日付(1931/9/1)と判断されます。 「年月日」が確実に入力されているなら問題はないでしょう。
- marbin
- ベストアンサー率27% (636/2290)
条件付き書式や関数での セルの内容が日付であるか否かの判定は ↓でいけると思います。 条件付き書式 =ISERROR(WEEKDAY(A1)) 関数 =IF(ISERROR(WEEKDAY(A1)),"日付でない","日付である")
- redowl
- ベストアンサー率43% (2140/4926)
マクロ使わずで・・・・ セル指定してから データの入力規則の 設定画面 で 条件の 入力値の値 「日付」 データ 「次の値より小さい」 次の日付けまでの入力に =TODAY() にすれば、 当日を含めて過去の年月日入力は◯ 明日以降の、年月日入力は× 誤入力すると、メッセージ表示にする。 方法ではだめでしょうか?
- marbin
- ベストアンサー率27% (636/2290)
↓で"Date"が返ってきたら日付、という手もあります。 TypeName(ActiveCell.Value)
- marbin
- ベストアンサー率27% (636/2290)
IsDate関数 でできます。 ヘルプに載っています。