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

回答編集履歴

1

コード追記

2021/11/03 05:59

投稿

hatena19
hatena19

スコア34367

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