|
注釈です
問題を修復しました
メッセージボックスに表示された質問に[はい][いいえ]で答えていきます。
用意された質問にすべて答えると、[はい]の数により、メッセージボックスに診断結果が出力されます。
質問と答えに下の赤色の部分を追加してください。
恋の冒険度」
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
|
|