投稿日 | : 2004/04/19(Mon) 16:03 |
投稿者 | : サム |
Eメール | : |
URL | : |
タイトル | : Re^3: Validateイベントの回避 |
> ……という意味の回答を(No.8699に)書いたつもりだったのですが、
> すみません。あの回答では、ちょっと分かりにくかったかもしれませんね。(^^;
>
いえいえ、意味は分かったのですが、使い方がいまいちだったので。
Private Sub Command1_Click() '終了ボタン
Res = MsgBox("データが更新されています。終了してよろしいですか?", vbOKCancel)
If (Rei = vbOK) Then
Unload Me
Else
Form1.ValidateControls
End If
としておくと、確かにValidateイベントが発生するのですが、
Private Sub Text1_Validate(Cancel As Boolean)
If (CInt(Text1.Text) < -30) Or (CInt(Text1.Text) > 30) Then
MsgBox ("ダメ!")
Cancel = True
End If
End Sub
とすると、Cancel後また
Form1.ValidateControls
の行に復帰し、今度はイベントが処理済みだからか
「プロパティの値が不正です。」のエラーになってしまいます。
Command1_Click()内に
On Error Resume Nextを書いておけば回避できるのですが、
こんな使い方でよいのでしょうか。