teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード追記

2021/12/19 15:25

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -9,4 +9,23 @@
9
9
  しかし、00:00:90 というような入力は 00:01:30 と変換してくれます。
10
10
 
11
11
  これではダメ、00:00:90 も拒否してほしいとなると、セルの表示書式は「文字列」にしておいて、
12
- シートのChangeイベントでチェックすることになりそうです。
12
+ シートのChangeイベントでチェックすることになりそうです。
13
+
14
+ ```vba
15
+ Private Sub Worksheet_Change(ByVal Target As Range)
16
+ If Target.Cells.Count = 1 And Target.Column = 1 Then
17
+ If Not CheckFormat(Target.Value) Then
18
+ Target.Select
19
+ MsgBox ("フォーマットが違います")
20
+ End If
21
+ End If
22
+ End Sub
23
+
24
+ Function CheckFormat(mozi As String) As Boolean
25
+ If mozi = "" Then
26
+ CheckFormat = True
27
+ ElseIf IsDate(mozi) Then
28
+ If DateValue(mozi) = 0 Then CheckFormat = True
29
+ End If
30
+ End Function
31
+ ```