フォーム内のデータを更新するタイミングで、何かしらの処理を行う方法 データ更新の際に発生するイベント ▼記述例_フォームのモジュール内のBeforeUpdateイベントに記述▼ ▼記述例_フォームのモジュール内のBeforeUpdateイベントに記述▼ ▼よくわかる解説記事▼
イベント【BeforeUpdate】とは
BeforeUpdate - AfterUpdateの順でイベントが発生し、BeforeUpdateイベントではデータ更新のキャンセルが可能なので
入力値が不正である場合を除きたい場合にはBeforeUpdateイベントに記述するとよい
Case.テキストボックスに整数のみ入力してほしい
Private Sub txt1_BeforeUpdate(Cancel As Integer) '整数を入力してほしい場合
If IsNumeric(Me.txt1.Value) Then
If CDbl(Me.txt1.value) = CLng(Me.txt1.value) Then
Debug.Print "入力値は整数なのでOK"
Exit Sub
Else
Debug.Print "入力値は整数ではないのでやりなおし"
End If
Else
Debug.Print "入力値は数値ではないのでやりなおし"
End If
Cancel = True
End Sub
▼処理結果 整数のみ▼
▼処理結果 整数以外の数値▼
▼処理結果 数値以外▼
Case.全角文字のみ入力してほしい場合
Private Sub txt1_BeforeUpdate(Cancel As Integer) '全角文字のみ入力してほしい場合
If LenB(Me.txt1.Value) = LenB(StrConv(Me.txt1.Value, vbFromUnicode)) Then
Debug.Print "入力値は全角文字だけなのでOK"
Exit Sub
Else
Debug.Print "入力値に半角文字が入っているのでやりなおし"
Cancel = True
End If
End Sub
▼処理結果 全角文字のみ▼
▼処理結果 半角文字交じり▼
【参考】半角文字だけを入力できるようにしたい場合
テキストボックスに入力するデータを半角文字だけで入力するようにしたいとき | Excel活用による業務効率化・業務改善、社員研修・eラーニングならビジネスITアカデミー!
VBAなぞ使わずとも対処はできる