AIと戦って、あなたの人生のリスク診断 >>

エクセルのマクロを使って、四択のクイズのようなものを作りたいと思っているのですが、初心者な者でどうしたらよいのかまったくわかりません。
どのような手順でやっていけばよいのかだけでも構わないので、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

プログラミングですね。


タグ打ちをするので、ここで1から書くのは難しいです。
プログラミングについての本がたくさん出ているはずですよ★
(参考にならなくてすみません)
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

Aベストアンサー

おもしろそうなので、寄せてもらいます。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

おもしろそうなので、寄せてもらいます。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]ボタンを押...続きを読む

Qクイズゲームのフォームについて

こんばんは。VB初心者です。
VB6.0を用いてのクイズゲームを作成することになりました。
フォームの内容は以下のようなものです。
・問題文(ラベルorテキストボックス)
・ヒントの動画(MCIコントロール)
・四択選択肢(オプションボタン)
・正解不正解(ピクチャボックス)
・解説(ラベルorテキストボックス)

これを20問作るのですが、フォームを20個作らずに各コントロールの中身だけを変化させていきたいのですが、どのようなプログラムになるのか検討がつきません。
そこで、大まかなプログラムの流れだけでもいいので教えて欲しいです。
また、クイズ作成において参考になるHPがあれば教えて下さい。宜しくお願いします。

Aベストアンサー

20個フォームをつくるなんてやめて~(笑)

クイズは問題数分の配列を用意すればいいです。問題文と答えは
DIM Aestion(20) As String
DIM Kotae(20) as integer

ついでに回答者の結果を格納する配列も用意しましょう。
DIM Kekka(20) As Integer

とりあえず処理の中心は上記3つの配列です。
コードの先頭において、どこでも参照できるようにした方が楽です。

問題文はファイルから読み込む方が汎用性があっていいですが、
初心者だと大変なので、とりあえずはForm_Loadに書いてしまいましょう。
20問は毎回固定になります。

慣れたらQuestionとKotaeの配列を100に増やすとかしてもいいです。
問題文は最初100題書いておいて、20題だけ出題することもできます。

選択肢はオプションボタンとありますが、これは要らない。
最初から4つのボタンを用意して、
それを押下させた方が操作性もいいしコードも楽になります。

何問目の問題かを制御するカウンターもコードの先頭に宣言しましょう。
Dim nanmonme As Integer

これら変数をコードの先頭におくと便利なのは、
VBがイベント駆動型で処理がイベントにまたがってしまうからです。

どこのSub にもFunctionにも属さないコードの先頭におけば
フォームを閉じるまで変数の値はずっと保持されています。

MCIコントロールは最後の最後。
とりあえず20問最後まで動くインタフェースを作ってからの話ですね。

20個フォームをつくるなんてやめて~(笑)

クイズは問題数分の配列を用意すればいいです。問題文と答えは
DIM Aestion(20) As String
DIM Kotae(20) as integer

ついでに回答者の結果を格納する配列も用意しましょう。
DIM Kekka(20) As Integer

とりあえず処理の中心は上記3つの配列です。
コードの先頭において、どこでも参照できるようにした方が楽です。

問題文はファイルから読み込む方が汎用性があっていいですが、
初心者だと大変なので、とりあえずはForm_Loadに書いてしまいましょ...続きを読む


人気Q&Aランキング