お世話になっております。
以下の「終了日」というフォールドで”うるう年”をチェックしています。
「2012/02/28」と手動で入力した場合確認画面が出るようにしています。
ほとんどは2/29が正しいですが、稀に2/28でOKの場合もあり、これは許可しています。
もっと稀に終了日が空白でOKの時もあるのですが、日付が入力されていないからか、
エラーが出て先へ進めません。
うるう年をチェックしつつ、空白も許可するにはどうしたら良いでしょうか。
----------
Private Sub 終了日_Exit(Cancel As Integer)
Const cMsg = "うるう年ですけど、終了日は2/29じゃなくて大丈夫ですか?"
If Format(Me.終了日.Text, "mdd") = "228" And _
IsLeapYear(Year(Me.終了日.Text)) Then
If MsgBox(cMsg, vbYesNo) = vbNo Then
Cancel = True
End If
End If
End Sub
----------
宜しくお願い致します。
空欄か日付が入っているかは並び立たないので
単純に二段構えで
If Me!終了日.Text = "" Then
If MsgBox("未記入ですが進めますか", vbYesNo) = vbYes Then
Exit Sub
Else
Cancel=true
Exit Sub
End If
End If
以下うるう年のチェック・・・
ではダメですかね?
なお、フォーカス喪失時イベントでは、何も編集していなくても
そこから移動するたびにイベントが発生してしまうので
更新前処理に変更した場合で考えてます。
お礼
少し変えたらできました。 大変参考になりました。ありがとうございます!
補足
とても参考になります。ありがとうございます。 フォーカスの喪失時でやりたい理由がありまして、 他のフォームにて入力したデータを、このフォームの特定のボタンを押した時にもチェックをかけたいんです。 なので、更新しなくてもボタンを押す時がある為、フォーカスの喪失時にしてみました。 そのボタンには、他にもチェックをしてる項目があるので、マクロの中に「フォーカスの移動」を複数入れています。 他に終了日に対してうるう年チェックと空白無視をする案ありますでしょうか。 空白はメッセージ表示しても良いですが、できれば「無視(許可)」にしたいです。 宜しくお願いいたします。