VBA Hamster編
【2】テキストボックスで日付をチェックして形式を統一する
テキストボックスで日付を入力する際にEXCELのように年を省略してmm/dd形式で入力すると自動でyyyy/mm/ddへ変換した結果を
データとして保存したい。それにはテキストボックスのBeforeUpdateイベントに以下のような処理で行う。IsDate関数で日付チェックして
から形式をyyyy/mm/ddへ変換する。その時に複数で利用する場合を見込んでSubプロシジャーを作成して利用する。
'以下標準モジュールに記述
'■
Sub date_ch(wob As Control, ByVal Cancel As MSForms.ReturnBoolean)
With wob
If IsDate(.Text) Then
.Text = Format(.Text, "yyyy/mm/dd")
Else
If .Text = "" Then Exit Sub
MsgBox "無効な文字列または無効な日付です", vbInformation
Cancel = True 'フォーカスを移動しない
End If
End With
End Sub
'■ 以下ユーザフォームに記述する。テキストボックス名:TB_日付
Private Sub TB_日付_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Call date_ch(TB_日付, Cancel)
End Sub