• ベストアンサー

msgboxの引数について調べているのですが・・・

私は現在四択の選択肢のある問題を制限時間内に解答する、というようなプログラムを作成しているのですがその中で解答の途中に問題を終了し結果を表示する「終了」というボタンを作成しました。 MsgBox("テストを終了しますか?", vbYesNo, "テスト終了") 終了ボタンをクリックしたら上記のようなにメッセージボックスを表示させたいのですが、この際”いいえ”のほうが選択されているのをディフォルトで設定したいのですが上記のプログラムにvbDefaultButton2?を設定すればいいのか?設定するとしてどこに記述すればいいのかわからなくなり質問しました。 知恵をかしてくださいよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kent_a
  • ベストアンサー率18% (36/199)
回答No.1

vbYesNo + vbDefaultButton2 では?

ryousuke33
質問者

お礼

助かりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

メッセージボックスに表示するボタンに、「特定のボタンを選択させたい」というryousuke33さんの気持ちはよく解りますが、ユーザーが選択するボタンにディフォルト設定することは出来ません。 人間には、「はい」と条件反射しがちな性質がありますから、メッセージの内容を工夫して、「はい」ボタンにて「テストを終了しない」というふうにするしかありません。 その他の方法として、工夫したユーザーフォームを作るとか、 もう一度 「本当に、テストを終了していいですか」と問うメッセージボックスを表示するとかがあります。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

質問に vbDefaultButton2 の語句が出ているのに、Googleなどで 「vbDefaultButton2」でなぜ照会しないのかな。 http://homepage1.nifty.com/MADIA/vb/vb_bbs/200402/200402_04020103.html ほか多数記事がでる。 ーー ついでにまだVB&やVBAの質問もあるので、VB.NET系であること、そのバージョンを書いておいてください。

全文を見る
すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

ついでにvbQuestionも Ctl = vbYesNo + vbDefaultButton2 + vbQuestion Res = MsgBox("テストを終了しますか?", Ctl, "テスト終了")

全文を見る
すると、全ての回答が全文表示されます。
  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.3

ヘルプはご覧になりましたか? (MsgBoxにカーソルを合わせてF1) ヘルプには -------------------------------- MsgBox(prompt[, buttons] [, title] [, helpfile, context]) ~省略~ 名前付き引数 buttons には、次の値のうち、該当する値の合計値を指定します。 ~省略~ -------------------------------- とあります。 つまり、足せばOK MsgBox("テストを終了しますか?", vbYesNo + vbDefaultButton2, "テスト終了") ヘルプで調べたほうがネットで調べるより早いことは多々ありますので、ヘルプで調べる癖をつけましょう。

全文を見る
すると、全ての回答が全文表示されます。
  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.2

このようなモノであれば、ヘルプでも見れば即座に理解できると思うが・・・ vbYesNo の部分を vbYesNo + vbDefaultButton2 にすればOK。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • msgbox について

    エクセルのmsgboxなのですが 「はい」「いいえ」「キャンセル」と 表示される設定のMSGBOXを使って 各々のボタンの押された場合の 処理を使っています 「はい」「いいえ」「キャンセル」の ボタンの表示だけを変更することは 可能ですか? 例 「はい」→「処理A」   「いいえ」→「処理B」   「キャンセル」→「何もしない」 それともMSGBOXではボタンの表示事態を 変更することは不可能なのでしょうか?

  • 出しっぱなしで進んでしまうmsgboxは

    いつもお世話になっております。 標題のとおりですが、 私の使っているmsgboxは表示したアト、止まり、 enterを押したら制御が再開(進)します。 この度、 前処理と本処理があるプログラムを書いていますが、 前処理に時間が掛かるため、前処理が終わった時点で、 「前処理終了」と表示したいのです。 これまでのmsgboxでは、 そこでボーっとしてしまうと幾ら経っても本処理が終わらなくなってしまいます。 ということで質問しています。 本処理が進み始めたのが分かればそれでいいので、 「前処理終了」を表示するだけで、制御を進めてしまうmsgbox(またはそれに値する) 方法を教えてください。 なお、全てが終われば、当該msgが消えた方がベターです。 宜しくお願いします。

  • MsgBoxがコンパイルエラーになります

    エクセルにてマクロを作成しているのですが、 今まで問題なく動いていたMsgBoxがコンパイルエラーになります。 MsgBox("テスト", vbOKOnly, "テスト") と打っても、 「コンパイルエラーです。修正候補:=」 表示されるようになりました。 今までは、これと同じように打っていても何も問題がなかったのに、 突然、このようになりました。 ちなみに、今まで正常に動いていたものをまったく同じように打っても エラーになります。 まったく原因がわかりません。 どなたかおわかりになる方、よろしくお願いします。

  • MsgBoxで処理したい

    セル"A1"に入力した値が正しければ、セル"B5"に"○"が表示され、 正しくなければ、"×"が表示されるようにしてあります。 そこで、正しくない値が入力された場合のみ MsgBox が表示されて "はい"を選択したらそのまま"A2"に移動し、 "いいえ"を選択したら"A1"をクリアして"A1"に戻るように考えましたがうまくいきません。 下記の記述では全てクリアーされてしまいます。 どの様に記述したらよいでしょうかご教授ねがいます。 If Range("B5").Value = "×" Then MsgBox "処理を継続しますか?", vbYesNo Range("A2").Select Else Range("A1").ClearContents Range("A1").Select End If

  • Access2002 vbYesNo でYesをデフォルトにするには

    質問させていただきます。 以下のようなコードの場合、ボタンを押すと「No」がデフォルトになります。 If MsgBox("次のデータを登録しますか?", vbYesNo + vbInformation + vbDefaultButton2, "登録") = vbYes Then この処理の場合、「Yes」を選択する確立が高いので「Yes」をデフォルトにしたいのですが、どのようにすればよいでしょうか? 以上、よろしくお願いいたします。

  • フォームを閉じないようにする VB6 SP6

    VB6 でプログラムを作成中です。 プログラムを実行して、フォームが立ち上がった所で右上の×を押し、画面を閉じようとします。 そこで以下のコードで、もし×が押されたらvbYesNoメッセージボックスを表示させ、もし「いいえ」が押されたらフォームを閉じないようにし、実行画面を維持したいのです。 しかし、Exit Sub ですとプログラムが終了してしまい、困っています。宜しくお願い致します。 Private Sub Form_Unload(Cancel As Integer) 'フォームを閉じる Dim last As String last = MsgBox(" プログラムを終了させますか?", vbYesNo, "終了確認1") If (last = vbYes) Then Dim last2 As String last2 = MsgBox(" 本当にプログラムを終了させますか?", vbYesNo, "終了確認2") If (last2 = vbNo) Then Exit Sub End If End If If (last = vbNo) Then Exit Sub End If End Sub

  • Msgboxのループ

    Do Until k > 12 If lbl_TenNm2(k).Caption <> "" Then Result = MsgBox("☆☆☆本日の品は☆☆☆" & vbCrLf & _ "『" & ラベル店名(0).Caption & "』" & "の" & vbCrLf & _ ラベル(k) & "を" & テキスト(k).Text & "個" & vbCrLf & _ "でよろしいですか?", vbYesNo, "確認") End If k = k + 1 Loop メッセージボックスで配列のラベルに入ったものを一度に表示したい場合どのような方法をとればよいのかまったく分かりません。もし、何か良い方法がおわかりの方がいましたら、教えてください。 お願いします。 上記の方法だと、メッセージボックスがその配列の数だけ出てきてしまいます。

  • ▼マクロ印刷設定について▲

    下記のプログラムはコマンドボタンを押すと フォームが表示され、氏名を選択すると 印刷しますかと表示されOKを押すと 印刷がかかるようになっているのですが… このプログラムを印刷設定ができるようにしたり、 印刷枚数を指定できるようなプログラムに変えるには どうしたら良いでしょうか…;; アドバイスなど宜しくお願い致します…。 '↓ここから――――――― Private Sub CommandButton1_Click() Cells(2, 17) = 名簿.Value yesno = MsgBox("印刷しますか?", vbYesNo + vbQuestion + vbDefaultButton1 + vbSystemModal, "印刷しますか?") If yesno = vbYes Then ActiveWindow.SelectedSheets.PrintOut copies:=1 End If Unload Userform1 End Sub Private Sub UserForm_lnitialize() For i = 1 To 15 'lが0から7まで(2行-2から9行-2まで) 名簿.Addltem Worksheets("データ").Cells(i + 1, 1).Value '名簿という別のシート Next End Sub Private Sub 名簿_Change() End Sub '↑ここまでです――――――

  • VBAでの引数かっこの使い方がよくわからない

    今までプログラム等の経験がなく、今初めてVBAを使っているのですが、引数を入れる()の使い方がよくわかりません。 調べれば調べるほど混乱するような感じです。 例えばプロシージャの後の()は、プログラムのサンプル例で、その()の中にあらかじめ設定された変数(文字列でした)が入っているのを見た事があるのでそのように使うのでしょうけれど、どういう場合に使うものなのでしょうか。 また、msgbox(○○)で、()内に入っているものがメッセージボックスに表示される事も、その現象だけは経験的に知っていますが、それは、 msgbox"○○"  や、 msgbox a a=a+1 という場合と何が違うのでしょうか。 例えばmsgbox(a+1) としてしまっては、いけないのですか?

  • MsgBoxの表示について

     ユーザーフォームのチェックボックスの選択後(複数選択可)コマンドボタンのクリックで各チェックボックスのマクロを実行するようにしていますが、下記コードだとマクロの実行後もMsgBoxが表示されてしまいますが(当たり前ですが)、これをコマンドボタンのみをクリックした場合のみMsgBoxを表示させることは可能でしょうか?お教え下さい。 Windows7・SP1 Office2010・SP2 Private Sub CommandButton1_Click() Sheets("編集").Select If CheckBox9 Then Unload UserForm6 変更後編集データの保存 End If If CheckBox10 Then Unload UserForm6 変更前編集データの保存 End If If CheckBox11 Then Unload UserForm6 指定勤務有あり編集データの保存 End If If CheckBox12 Then Unload UserForm6 指定勤務有なし編集データの保存 End If If CheckBox2 Then Unload UserForm6 日付データの保存 End If If CheckBox3 Then Unload UserForm6 個人情報の保存 End If MsgBox ("保存する編集データを選択してください。"), vbExclamation End Sub

MCF-J6973 電源入らず
このQ&Aのポイント
  • MCF-J6973の電源が入らないトラブルについて相談します。
  • Windows11/10/8.1で使用しているMCF-J6973の電源が入らず、無線接続もできません。
  • MCF-J6973の電源が入らず、ひかり回線での使用に問題があります。
回答を見る