回答編集履歴

1

コード追記

2021/11/09 09:30

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -23,3 +23,41 @@
23
23
  Me.textboxA.Value = CDate(s)
24
24
 
25
25
  ```
26
+
27
+ ---
28
+
29
+
30
+
31
+ AfterUpdateでは SetFocus でフォーカスを戻せません。このイベントの後で次のフォーカスへ移動しますので。BeforeUpdate(またはExit)でイベント自体をキャンセルすること(Cancel = True)で、フォーカスが移動しなくなります。
32
+
33
+
34
+
35
+ ```VBA
36
+
37
+ Private Sub textboxA_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
38
+
39
+ Dim s As String
40
+
41
+ s = Me.textboxA.Value
42
+
43
+ If s Like "########" Then s = Format(s, "@@@@/@@/@@")
44
+
45
+ If Not IsDate(s) Then
46
+
47
+ MsgBox "日付を入力してください。"
48
+
49
+ Cancel = True
50
+
51
+ Exit Sub
52
+
53
+ End If
54
+
55
+ textboxA = CDate(s)
56
+
57
+ End Sub
58
+
59
+
60
+
61
+
62
+
63
+ ```