こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのマクロでゲームを作成したいのですが

タイトルの通りです office2002ですが visual vasic editorに入力しています。
Sub quiz1()
MsgBox "[OK]ボタンを押すと、なぞなぞが始まります"
MsgBox "自分が動物だと言っているような飲み物は?"
MsgBox "サイダー"
MsgBox "話をすることの大好きな道具は?"
MsgBox "シャベル"
MsgBox "やぶれば、やぶるほど、ほめられるものは?"
MsgBox "記録"
End Sub
と入力しましたが メッセージボックスのタイトル部分が Microsoft Excelとなっていますが 例えば "問題1"とかに変えたいのですが 
どうすればいいのでしょうか お願いします

投稿日時 - 2005-07-12 10:59:12

QNo.1508012

すぐに回答ほしいです

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

おもしろそうなので、寄せてもらいます。Sheet2に、データをセットして、そこから問題と答えを呼び出します。Sheet2の1列目は、問題番号、2列目は問題、3列目は答えとして、2 行目から、データが入っているとします。

次のコードを、標準モジュールにコピペしてください。


Sub quiz()
Dim ans As Variant
Dim Question, Answer, H(3) As String
Dim i As Integer
Dim WS As Object
Set WS = Worksheets("Sheet2")
H(1) = "ぴんぽ~ん!"
H(2) = "当たり!"
H(3) = "残念"
MsgBox "[OK]ボタンを押すと、なぞなぞが始まります", , "クイズ"
i = 1
While WS.Cells(i + 1, 2) <> ""
Question = WS.Cells(i + 1, 2).Value
Answer = WS.Cells(i + 1, 3).Value
ans = InputBox(Question, "問題" & i)
If ans = Answer Then
MsgBox H(1), , H(2)
Else
MsgBox Answer & "でした。", vbCritical, H(3)
End If
i = i + 1
Wend
End Sub

投稿日時 - 2005-07-13 13:45:51

補足

早速 やってみましたが残念!

ボタンを押すと、なぞなぞが始まります は出たのですが その後がでないのです

投稿日時 - 2005-07-14 12:29:41

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

No2です。

No4の補足を見ましたが、回答者:pascal3141 さんが書いたように、Sheet2の1列目は、問題番号、2列目は問題、3列目は答えとして、2 行目から、データが入えてありますか?

No3の補足をみましたが、ポップアップされるメッセージボックスの大きさは、文字数が増えれば自動的に大きくなりますよ。長い問題を入れてみて下さい。

改行したい場合はこんなふうにしてみてください。

MsgBox "[OK]ボタンを押すと、なぞなぞが始まります。♪♪♪♪" _
+ Chr(&HD) + Chr(&HA) + "" _
+ Chr(&HD) + Chr(&HA) + "質問の答えを入力欄に書き込んでOKボタンを押してみてください。" _
+ Chr(&HD) + Chr(&HA) + "" _
+ Chr(&HD) + Chr(&HA) + "では始まりま~す。", , "クイズ"

投稿日時 - 2005-07-14 18:44:18

ANo.3

面白そうなので参加します。

No2さんのをそのまま拝借して、点数を出すようにしました。

Sub quiz2()
Dim ans As Variant
Dim p As Integer, x As Single
p = 0
MsgBox "[OK]ボタンを押すと、なぞなぞが始まります", , "クイズ"
ans = InputBox("自分が動物だと言っているような飲み物は?", "問題1")
If ans = "サイダー" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
p = p + 1
Else
MsgBox "サイダーでした。", vbCritical, "残念"
End If
ans = InputBox("話をすることの大好きな道具は?", "問題2")
If ans = "シャベル" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
p = p + 1
Else
MsgBox "シャベルでした。", vbCritical, "残念"
End If
ans = InputBox("やぶれば、やぶるほど、ほめられるものは?", "問題3")
If ans = "記録" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
p = p + 1
Else
MsgBox "記録でした。", vbCritical, "残念"
End If
x = 100 * p / 3
MsgBox "3問中、" & p & "問正解です。", , x & " POINT"
End Sub

投稿日時 - 2005-07-12 13:27:27

補足

おもしろ~い!!ありがとうございます 
ついででは 申し訳ないのですが
皆さんに お聞きしたいのですが 
このダイアログボックスの大きさをもっとおおきくできますか?? おねがいします  

投稿日時 - 2005-07-14 12:19:12

ANo.2

なぞなぞならこんな感じでいかが?
回答を入力する方式にしてみました。

Sub quiz1()
MsgBox "[OK]ボタンを押すと、なぞなぞが始まります", , "クイズ"
ans = InputBox("自分が動物だと言っているような飲み物は?", "問題1")
If ans = "サイダー" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
Else
MsgBox "サイダーでした。", vbCritical, "残念"
End If
ans = InputBox("話をすることの大好きな道具は?", "問題2")
If ans = "シャベル" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
Else
MsgBox "シャベルでした。", vbCritical, "残念"
End If
ans = InputBox("やぶれば、やぶるほど、ほめられるものは?", "問題3")
If ans = "記録" Then
MsgBox "ぴんぽ~ん!", , "当たり!"
Else
MsgBox "記録でした。", vbCritical, "残念"
End If
End Sub

投稿日時 - 2005-07-12 11:38:52

お礼

うれしい~!!感激です 想像していたとおりの物ができました ありがとうございます

投稿日時 - 2005-07-12 12:01:57

ANo.1

Visual Basic Editorの画面で、ヘルプからMsgBox関数の解説を見ると良いです。

この場合は、

MsgBox "[OK]ボタンを押すと、なぞなぞが始まります", , "問題1"

でOKです。

投稿日時 - 2005-07-12 11:05:52

お礼

わ~!!できました ありがとうございます

投稿日時 - 2005-07-12 12:00:35

あなたにオススメの質問