Windows2000, VB6.0を使っています。
メッセージボックスの「はい」「いいえ」の選択によって、次の処理を
二通りに分けたいのですが、どのようにすればいいのかわかりません。
どなたかご回答をよろしくお願いします。
ElseIf txtTitle.Text = "" Then
MsgBox "タイトルがありません。" & vbCrLf &_
"このまま保存しますか?", vbYesNo, "タイトル確認"
If vbNo Then
txtTitle.SetFocus
ElseIf 【次の処理に進みたい】
End If
ElseIf txtDisplay.Text = "" Then
MsgBox "テキストに何か書いてください。"
【 】の部分について、特に悩んでいます。
よろしくお願いします。
txtDisplay.SetFocus
すみません、いちばん最後の行の
txtDisplay.SetFocus は、
ElseIf txtDisplay.Text = "" Then
MsgBox "テキストに何か書いてください。"
の後に書きたかったのですが間違えました。
MsgBox の戻り値を変数に受けてみて下さい。
[VB6.0]
Dim wAns As VbMsgBoxResult
wAns = MsgBox("ok?", vbYesNo)
Select Case wAns
Case VbMsgBoxResult.vbYes
MsgBox "Yes!"
Case VbMsgBoxResult.vbNo
MsgBox "No!"
End Select
('A`)<…えーと…どこから説明したらいいのか…
とりあえず、サンプルコードでも書いてみるか。
| Dim a As VbMsgBoxResult
|
| a = MsgBox("[はぃ]∩( ・ω・)∩[ぃぃえ]", vbYesNo, "ハイ/イイエ")
| If a = vbYes Then
| MsgBox "[はぃ]⊂( ・ω・)ハィハィ"
| Else
| MsgBox "Σ( ・ω・)⊃[ぃぃえ]"
| End If
という感じです。
玉洒タ…>orz
ば、化けたし…(ororz
> If vbNo Then
> txtTitle.SetFocus
> ElseIf 【次の処理に進みたい】
> End If
何とvbNoを比較してるの?
MsgBoxからの戻り値を取りたいなら
iRet = MsgBox("hogehoge",vbYesNo,"hogehoge")
もっとちゃんとヘルプを呼んで関数を使いましょう。
あ。。かぶってしまった。
まず、MsgBoxを
Ret = MsgBox ("タイトルがありません。" & vbCrLf &_
"このまま保存しますか?", vbYesNo, "タイトル確認")
という感じにした方が後々楽かと
んで、If文なりSelect Case文なりで分岐すればいいですよね
(分岐先の内容はそちらで)
一応こんな感じで
Select Case Ret
Case VbYes
Yesの時の処理
Case VbNo
Noの時の処理
End Select
ちなみにCase内での処理が終わってCaseから抜けるのをどうすればいいのか、という悩みは必要ありません
勝手に抜けます(End Selectの次から処理再開)
Select Case文を使った分と、If文を使った分、両方でできました。
ヘルプではよく分かりませんでしたが、
インターネットで調べてみると参考になるものが多くありました。
すごく初歩的な質問をしてしまってすみませんでした。
回答をくださったみなさま、ありがとうございました。
この場合は
If MsgBox("タイトルがありません。" & vbCrLf & "このまま保存しますか?", _
vbYesNo, "タイトル確認") = vbNo Then
txtTitle.SetFocus
End If
だけでも良さそうな。
こう言うコードは良くないのかな。。。。。
>こう言うコードは良くないのかな。。。。。
Boolean 型でもないしAPIも関係ないですし…ボク使ってますよ?(^^)
問題あるんだったらまた情報下さい〜
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200505/05050039.txt
追記ありがとうございます。
ねろさんのコードも試してみたところ、ちゃんと動きました。
まるるうさんのリンクの方も、見させていただきました。
サンプルコードをたくさんありがとうございました。
ツイート | ![]() |