追加ボタンを押して、もし未入力があったらエラーメッセージを表示して、
追加はできないプログラムを作りたいです。
エラーメッセージは表示できますが、なぜか追加までされてしまいます。
どうしたらよいのでしょうか??
Private Sub cmd2_Click()
Dim FNAME As String
Dim ret As String
CommonDialog1.ShowSave
FNAME = CommonDialog1.FileName
If txt1.Text = "" Or txt2.Text = "" Then
MsgBox "未入力のデータがあります", vbExclamation
End If
Open FNAME For Append As #1
Print #1, txt1.Text & "," & txt2.Text
Close #1
ret = MsgBox("追加されました", vbOKOnly, "確認")
If ret = vbOK Then
Close
Else
txt1.SetFocus
End If
End Sub
MsgBoxは、メッセージボックスを表示するだけです。
プログラムを停止したり、プロシージャを抜けたりしませんから、そのまま
処理は継続されます。
ヘルプの制御構造辺りを読めば、幸せになれると思います。
Do〜Exit Do あるいは For〜Exit For を用いる場合、
条件式はIFから始まる文でいいと思うんですが、
DoまたはForの後の命令は入れればいいんですか?
基本的にプログラムは上から下へ
順番に処理が行われます。
あえてヒント
Exit Sub を使うと良いかも。
ファイル名を指定させるのは、入力チェックの後の方が良いとか言ってみるテスト。
> Do〜Exit Do あるいは For〜Exit For を用いる場合、
それらを、どこで用いるつもりなのですか?
> 条件式はIFから始まる文でいいと思うんですが、
いや、条件判断自体はよいけど、判断した後の処理の流れがマズイという話かと。
まぁ、Exit Sub についてはすでに出ているので……あえて別案を書いてみると、
未入力だったら、そもそも cmd2 を押せないように制御するという手もあるかな。
(cmd2_Change で判断して、cmd2 の Enabled を書き換えるとか、
cmd2_Validate で判断して、フォーカス移動を Cancel するとか)
すいません。できました。
ありがとうございました。
解決後にすいません。
Exit Subを入れたら後の処理が出来なくなってしまいました。。
どうしたらいいでしょうか。。
初歩的な質問すいません。。
Exit Subの入れる場所違ってました。。すいません。
ツイート | ![]() |