回答編集履歴

1

コード追記

2021/11/03 05:59

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -1 +1,51 @@
1
1
  とりあえず[Split関数](http://officetanaka.net/excel/vba/tips/tips62.htm)について調べると、幸せになると思います。
2
+
3
+
4
+
5
+
6
+
7
+ ---
8
+
9
+ このユーザーフォームだけでなく、他で使うこともできるように関数化しておくと便利でしょう。
10
+
11
+
12
+
13
+ 標準モジュール
14
+
15
+ ```vba
16
+
17
+ Public Function IsCAS(s As String) As Boolean
18
+
19
+ Dim a As Variant
20
+
21
+ a = Split(s, "-", 2)
22
+
23
+ If UBound(a) = 1 Then
24
+
25
+ If (Not a(0) Like "*[!0-9]*") And a(1) Like "##-#" Then IsCAS = True
26
+
27
+ End If
28
+
29
+ End Function
30
+
31
+ ```
32
+
33
+
34
+
35
+ ユーザーフォーム
36
+
37
+ ```vba
38
+
39
+ Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
40
+
41
+ If IsCAS(Me.TextBox1.Text) Then
42
+
43
+ Cancel = True
44
+
45
+ MsgBox "正しいCas番号を記入してください"
46
+
47
+ End If
48
+
49
+ End Function
50
+
51
+ ```