| 
    
     |  | 注釈です 問題を修復しました
 メッセージボックスに表示された質問に[はい][いいえ]で答えていきます。
 用意された質問にすべて答えると、[はい]の数により、メッセージボックスに診断結果が出力されます。
 質問と答えに下の赤色の部分を追加してください。
 恋の冒険度」
 Q1 宝くじや賭け事が好きなほうだ
 Q2 天気が良い日は、普段よりテンションが高め
 Q3 似合わない服を、衝動買いしたことがある
 Q4 熱中していると名前を呼ばれても気づかない
 Q5 海外へひとり旅の経験あり。または、ぜひ行きたい
 Q6 悩みやストレスで、体重が減る
 Q7 食事は、好きな物から先に食べる
 Q8 友人や恋人と、怒鳴り合いのケンカをしたことがある←赤い部分
 Q9 いつか見返してやりたい相手がいる←赤い部分
 
 
 YESの数
 0-1
 ”恋は北極”タイプ。
 恋愛に関して、いつもクールで冷静。つい好みにあった、自分とつりあう相手を選び勝ち。交際中も他人の目を気にしてしまうから、キケンな恋なんてもってのほか。
 2-4
 ”恋は夢見る風船”タイプ。
 ドラマチックな恋愛に憧れ、妄想するが、実際は確実な道を選ぶ。ただ突然の強引な告白などに弱く、思わず大胆になることもある。
 
 5-7
 ”恋はハバネロ"タイプ。
 刺激的なことが大好きでフィーリングが大事。恋の始まりは一目ぼれが多く、相手の条件は気にしない。
 突然ひらめき婚なんてことも。
 
 8-9←赤い部分↓
 ”恋はパパラッチ”タイプ。
 自分が大好きな上、タブーを犯したい願望が強い。相手の事情や気持ちを考えず、突っ走ってスキャンダルを起こしがち。
 友人の恋人を奪うなんてことも。
 
 Option Explicit
 Sub 出題()
 '
 ' 恋の冒険度
 '
 Dim Mondai As String   '問題文
 Dim Ans As Integer    'vbYes or vbNo
 Dim n As Integer     'カウント用
 Dim Yes As Integer    '「はい」の数
 Dim Message As String   '最終メッセージ
 Dim Mes1(3) As String   'メッセージ1
 Dim Mes2(3) As String   'メッセージ2
 Dim Mes3(3) As String   'メッセージ3
 
 For n = 1 To 3
 Mes1(n) = Sheet3.Cells(n, 2).Value
 Mes2(n) = Sheet3.Cells(n, 3).Value
 Mes3(n) = Sheet3.Cells(n, 4).Value
 Next n
 
 Yes = 0
 For n = 1 To 79
 Mondai = Sheet2.Cells(n, 1).Value
 Ans = MsgBox(Mondai, vbYesNo, "問題")
 
 If Ans = vbYes Then
 Yes = Yes + 1
 End If
 Next n
 Message = ""
 Select Case Yes
 Case 0, 1
 Message = Mes1(1) & vbCrLf & Mes2(1) & vbCrLf & Mes3(1)
 Case 2 To 4
 Message = Mes1(2) & vbCrLf & Mes2(2) & vbCrLf & Mes3(2)
 Case 5 To 7
 Message = Mes1(3) & vbCrLf & Mes2(3) & vbCrLf & Mes3(3)
 End Select
 Message = "YESは" & Yes & vbCrLf & Message
 
 MsgBox Message, vbInformation
 
 End Sub
 
 
 MsgBox(prompt[, buttons] [, title])
 引 数 内 容
 prompt ダイアログ ボックス内にメッセージとして表示する文字列式を指定します。
 文字列を複数行指定する場合は、「vbCrLf」を改行する位置に挿入します。
 buttons 表示するボタンの種類と個数、使用するアイコンのスタイル、標準ボタン、メッセージ ボックスがモーダルかどうかを表す値の合計値を示す数式を指定します。
 title ダイアログ ボックスのタイトル バーに表示する文字列を指定します。
 
 引数 buttons の指定方法
 名前付き引数 buttons には、次の各グループから値を 1 つずつ選択して加算したうち、該当する値の合計値を指定します。
 [ 例:vbYesNo ボタン(4)と vbQuestion ボタン(32) vbDefaultButton1 (0)の組み合わせ]
 ボタンの値を合計すると、「 4 + 32 + 0 = 36 」になりますが、後日、見た場合にわかりやすくするには、下記のように各グループの定数を + (プラス)でつないで指定したほうがわかり易いでしょう。
 Style = vbYesNo + vbQuestion + vbDefaultButton1
 定 数         値     内 容
 ボタンの種類と個数
 vbOKOnly        0    [OK] ボタンのみを表示します。
 vbOKCancel       1    [OK] ボタンと [キャンセル] ボタンを表示します。
 vbAbortRetryIgnore   2    [中止]、[再試行]、及び [無視] ボタンを表示しま                 す。
 vbYesNoCancel      3    [はい]、[いいえ]、及び [キャンセル] ボタンを表                 示します。
 vbYesNo         4    [はい] ボタンと [いいえ] ボタンを表示します。
 vbRetryCancel      5    [再試行] ボタンと [キャンセル] ボタンを表示し                  ます。
 アイコンの種類
 vbCritical       16    警告メッセージ アイコンを表示します。
 vbQuestion       32    問い合わせメッセージ アイコンを表示します。
 vbExclamation      48    注意メッセージ アイコンを表示します。
 vbInformation      64    情報メッセージ アイコンを表示します。
 標準ボタン
 vbDefaultButton1     0     第 1 ボタンを標準ボタンにします。
 vbDefaultButton2     256    第 2 ボタンを標準ボタンにします。
 vbDefaultButton3      512    第 3 ボタンを標準ボタンにします。
 vbDefaultButton4     768    第 4 ボタンを標準ボタンにします。
 
 MsgBox 関数の戻り値
 MsgBox 関数の戻り値は、下表に示すように、ボタンの選択結果です。選択結果を取得するには、一般的には変数を使用します。
 定 数    値     説 明    定 数    値 説 明
 vbOK     1      [OK]     vbIgnore    5    [無視]
 vbCancel   2     [キャンセル]   vbYes     6    [はい]
 vbAbort    3    [中止]     vbNo      7    [いいえ]
 vbRetry     4     [再試行]
 
 例
 1 メッセージを表示するだけのMsgBox
 
 処理内容:印刷実行メッセージを表示します
 Sub msgbox_1()
 MsgBox "印刷を実行。プリンタをセットしてください。"
 End Sub
 
 処理内容:メッセージを改行(vbCrLf)します
 Sub msgbox_2()
 MsgBox "印刷を実行。" & vbCrLf & "プリンタをセットせよ"
 End Sub
 
 処理内容:計算結果を表示します
 Sub msgbox_3()
 MsgBox "10 MOD 3 = " & 10 Mod 3
 End Sub
 処理内容:アクティブセルのアドレスを表示します
 Sub msgbox_4()
 MsgBox ActiveCell.Address
 End Sub
 
 処理内容:変数の値を表示します
 Sub msgbox_5()
 A = 10
 MsgBox "変数の値 = " & A
 End Sub
 
 処理内容:メッセージと情報アイコンを表示します
 Sub msgbox_6()
 MsgBox "情報アイコンを表示します", vbInformation
 End Sub
 
 
 2 MsgBox のボタン選択結果による処理
 
 処理内容:印刷実行確認メッセージを表示します
 Sub msgbox_7()
 Msg = "印刷を実行しますか"
 Style =vbYesNo + vbExclamation + vbDefaultButton1
 Title = "印刷実行確認"
 msgRec=MsgBox(Msg,Style,Title)
 If msgRec = vbNo Then Exit Sub
 MsgBox "印刷を実行します"
 End Sub
 
 処理内容:MsgBoxの戻り値でファイル登録を確認します
 Sub msgbox_8()
 Msg = "入力結果を登録しますか"
 Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
 Title = "登録確認"
 MsgRec = MsgBox(Msg, Style, Title)
 If msgRec = vbNo Then
 MsgBox "ファイルを登録せず終了します"
 Exit Sub
 Else
 MsgBox "ファイルを登録します"
 End If
 End Sub
 
 処理内容:MsgBoxの戻り値の結果により処理分岐します
 Sub msgbox_9()
 Msg = "処理を実行しますか"
 Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
 Title = "処理確認"
 MsgRec = MsgBox(Msg, Style, Title)
 Select Case MsgRec
 Case vbYes: MsgBox "「はい」の処理"
 Case vbNo: MsgBox "「いいえ」の処理"
 Case vbCancel: MsgBox "「キャンセル」の処理"
 End Select
 End Sub
 
 
 |  |