プロが教えるわが家の防犯対策術!

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

A 回答 (5件)

おもしろそうなので、寄せてもらいます。

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/14 12:29
    • good
    • 0

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) + "では始まりま~す。", , "クイズ"
    • good
    • 0

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



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/14 12:19
    • good
    • 0

なぞなぞならこんな感じでいかが?


回答を入力する方式にしてみました。

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/07/12 12:01

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



この場合は、

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

でOKです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/07/12 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!