Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37096 / 76732 ←次へ | 前へ→

【44810】Re:メッセージボックスについて
発言  わさび  - 06/12/1(金) 18:08 -

引用なし
パスワード
   > MsgBox(”つづけますか?”,vbYesNo) Msg
この場合、しいて表記するとしたら、
>> MsgBox(Msg & "つづけますか?",vbYesNo)
となります。

「”」は全角ではなく、半角ですね。
"○○○"で、文字列を直接指示しています。
「&」は、文字列をつなげるときに使います。
つまり、変数で間接的に指示された文字列「Msg」と、
直接的に指示された「つづけますか?」をつなげています。

しかし、このまま入力すると、
--------------------
 コンパイル エラー :
 修正候補 :=
--------------------
というメッセージが出るかと思います。
そこで、以下のふたつの例を比べてみてください。

まず、下記に変更して試してみてください。
>> MsgBox Msg & "つづけますか?", vbYesNo
おそらく田中さんが希望されているメッセージボックスが表示されると思います。
しかし、これでは「はい」でも「いいえ」でも同じ処理、
すなわち、またユーザーフォームに戻って、
テキストボックスにフォーカスされた状態になります。

ちなみに、時間があればこれも試してみてください。
>> MsgBox Msg & Chr(13) & "つづけますか?", vbYesNo
おわかりいただけるかと思いますが、「Chr(13)」は改行です。

では、「はい」を押したときと「いいえ」を押したとき、
それぞれ処理を分けるにはどうしたらいいかというと、下の例になります。
>> Dim YScheck As Integer
>> YScheck = MsgBox(Msg & "つづけますか?", vbYesNo)
こうすると、下のように使えます。
---------------------------
  If YScheck = vbYes Then
    '(「はい」のときの処理)
  ElseIf YScheck = vbNo Then
    '(「いいえ」のときの処理)
  End If
---------------------------

だいぶくどくど書いてしまってすみません。
いろいろ工夫してみてください。
3 hits

【44775】メッセージボックスについて 田中 06/12/1(金) 0:21 質問
【44780】Re:メッセージボックスについて りん 06/12/1(金) 9:17 発言
【44784】Re:メッセージボックスについて 田中 06/12/1(金) 10:58 質問
【44785】Re:メッセージボックスについて わさび 06/12/1(金) 11:54 発言
【44788】Re:メッセージボックスについて 田中 06/12/1(金) 12:46 質問
【44792】Re:メッセージボックスについて わさび 06/12/1(金) 14:55 発言
【44796】Re:メッセージボックスについて 田中 06/12/1(金) 15:59 質問
【44810】Re:メッセージボックスについて わさび 06/12/1(金) 18:08 発言
【44816】Re:メッセージボックスについて 田中 06/12/1(金) 21:52 お礼
【44812】Re:メッセージボックスについて Kein 06/12/1(金) 18:48 回答
【44818】Re:メッセージボックスについて 田中 06/12/1(金) 22:06 お礼

37096 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free