• 締切済み

VBA クイズを出題するフォームを作成する

クイズを出題するフォームを作成しているのですが、恥ずかしながらVBAは不慣れなものでなかなか作業が進まず行き詰まってしまいました、、。大変恐縮ではございますがお力添えいただければ幸いです。 クイズ作成にあたり、クイズの問題や解答群、答え等の情報を記載したものがworksheets(1)にあります。(画像参照) フォームのイメージは画像添付してあります。 以下の二点をご教示していただけると助かります(T-T) (1)解答ボタンをクリックすると、正解か不正解かがメッセージボックスにて表示。 (2)問題1が解き終わったら後は、次へボタンをクリックし問題2へと移る。 拙い説明になってしまい申し訳ないです。足りない情報かございましたら随時補足してまいります。お手数ですがよろしくお願いいたします。

みんなの回答

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

せっかくExcelなんですから、問題をダイアログに出さなくても 「白紙のシート」に書き込めばいいだけの話じゃないですか? 例えばSheet2のRange("A1")が問題文、その下に「選択肢の ボタンが並ぶ」と。 で、開始ボタンで、Sheet1の問題文をSheet2にコピー、回答ボタンで 結果をSheet1の問題文横に数値として与え、Sheet1に事前に作って 置いた関数でチェック、結果をSheet2にコピーすればオッケーです。 Sheet1の問題文はSelectionをうまく使えば問題なし。こうすれば 単純なRange~Copyだけで処理が終わります。

関連するQ&A

  • VBA クイズ作成 

    お目に留めていただきありがとうございます。 クイズを出題するフォームを作成しているのですが行き詰まってしまいました、、。 大変恐縮ではありますが、お知恵を拝借したく質問させていただきました。 フォームのイメージとしましては OptionButton1~5に問題を表示 解答ボタン(CommandButton1)をクリックすると正解か不正解かをMsgBoxに表示 (何も選択していない場合はエラーメッセージを表示) 次へボタン(CommandButton2)をクリックすると次の問題へと移り変わる 終了ボタン(CommandButton3)をクリックするとページを閉じる クイズ作成にあたりWorksheets(1)に以下のものを記入してあります。 No 問題 答1 答2 答3 答4 答5 正解 問1 如月   きらつき きさらぎ ききつき きさつき きさづき 2 問2 弥生   やよい やせい やしょう やいき よせい 1 問3 五月   ごがつ ごつき さつき いつき みつき 3 問4 神無月 かんなづき かんなつき かんなずき かみなずき かみなづき 1 問5 師走   しはしる しそう しっそう じそう しわす 5 A3~A7までNo B3~B7まで問題 C3~C7まで答1 D3~D7まで答2 E3~E7まで答3 F3~F7まで答4 G3~G7まで答5 H3~H7まで正解 私が進められたところは、以下のコードまでとなります。 Private Sub CommandButton1_Click() If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False And OptionButton4 = False And OptionButton5 = False Then ret = MsgBox("答えを選択してください!!", 48, "注意") End If End Sub Private Sub UserForm_initialize() TextBox1 = Worksheets(1).Cells(3, 2) OptionButton1.Caption = Worksheets(1).Cells(3, 3) OptionButton2.Caption = Worksheets(1).Cells(3, 4) OptionButton3.Caption = Worksheets(1).Cells(3, 5) OptionButton4.Caption = Worksheets(1).Cells(3, 6) OptionButton5.Caption = Worksheets(1).Cells(3, 7) End Sub お力添えいただければ大変嬉しいです。よろしく御願い致します。

  • クイズサイトの作成

    20問程度のクイズを行うサイトの作成を考えています。ほしい機能は、最終的に点数、正解率が表示される。解答は、5つぐらいのプルダウンメニューもしくは、ボタンから選ぶ。1問、1ページで解答するごとに次のページに進む。一度答えたら、元のページには戻れない。正解、不正解は1問ごとに表示。問題は50問程度の中から、ランダムで20問を出題。 以上のような、サイトを作りたいのですが、一番向いているのは、JAVAScript、ShockWave、CGIなど、どれでしょうか。皆さんのご意見をお願いします。

    • ベストアンサー
    • HTML
  • グーグルフォームでクイズ作成

    高校生です。 文化祭でクイズを作ることになりました。 その回答をグーグルフォームで行ってもらいたいと思っています。 クイズに不正解なら進まない、 正解なら次の問題というふうにしたいのですが、 できますでしょうか? 回答よろしくお願いします。

  • 4択クイズの解答について悩んでいます(涙)

    現在私はVB2005で4択のクイズ形式のプログラムを作成しています。 目標は「300問の問題を作成しそのなかからランダムに100問を出題し全問回答を終えたらその結果を表示する」というものを作ることです。 データセットに問題、解答群などを格納しています。 それをフォームで表示してラジオボタンで4択のなかから正解と思うものを1つ選びボタンをクリックして次の問題へ移行する・・・というような流れのプログラムです。 今壁にぶつかっているのが「問題一つ一つの回答をどのように保持し、どのように結果表示すればいいのか」というところなのです。 当方VBは初心者でなかなか前に進めず悩んでいます。 知恵をかしてください。どうかよろしくお願いしますm(_ _)m

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

    こんばんは。VB初心者です。 VB6.0を用いてのクイズゲームを作成することになりました。 フォームの内容は以下のようなものです。 ・問題文(ラベルorテキストボックス) ・ヒントの動画(MCIコントロール) ・四択選択肢(オプションボタン) ・正解不正解(ピクチャボックス) ・解説(ラベルorテキストボックス) これを20問作るのですが、フォームを20個作らずに各コントロールの中身だけを変化させていきたいのですが、どのようなプログラムになるのか検討がつきません。 そこで、大まかなプログラムの流れだけでもいいので教えて欲しいです。 また、クイズ作成において参考になるHPがあれば教えて下さい。宜しくお願いします。

  • フォームの作成

    同じテーブルがあります。 T_問題100、T_問題200 でT_問題100のフォームを作成したのですが このフォームにボタンを配置し T_問題200のフォームに切り替えることはできないのでしょうか?(コントロールソースを変えるとか??) フォームはF_問題100しか作成してません。マクロの登録などしたのでできればボタンひとつで切り替わると いいのですが。。。よろしくお願いしますm(__)m

  • ホームページでクイズを出題したい

    タイトル通りです。クイズを出題したいのですが、 どうググってもそれらしいのがありません。 理想では http://wolfpark.cside9.com/quiz6/quiz_ses.cgi?ver=1 のように複数の選択問題や、 記述式の問題も作成したいです。

  • VB2008にて4択クイズ作成

    質問させていただきます。 現在VB2008にて4択クイズを作成しています。 以下のサイトを参考に作成しているのですが、不明な点がありますのでご回答お願い致します。 http://www.microsoft.com/japan/msdn/student/challengeV2/chap2_vb/ 上記のページでは、Web用?に開発されてるみたいで一部ないコントロールがあります。私はVB2008のwindowsアプリケーションフォームというテンプレートから開始しているのですが、これが問題なのでしょうか。 私の開発環境では「Literal」というコントロールが見当たりません。私が見落としているだけなのかも知れませんが。。 とりあえず、コントロールはURL先とほぼ同様にしています。テーブルの作成(テーブルの挿入の仕方も分かりませんでした)とLiteral、imageコントロールは省いています。 そして、プログラムの内容は最後の項の「さらに一歩進んだテクニック」のものをほとんどそのまま使っています。 以下にそのまま貼り付けます。 Public Class Form1 '正解のボタンを表す変数を定義 Dim Answer As Button Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged ' 問題文を設定する TextBox1.Text = "Web ブラウザと Web サーバーの間で Web ページなどをやり取りする際に用いられる通信プロトコルは?" ' 回答の選択肢を設定する ButtonA.Text = "HTML" ButtonB.Text = "HTTP" ButtonC.Text = "XML" ButtonD.Text = "URL" ' 正解のボタンを設定する Answer = ButtonB End Sub Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonA.Click, ButtonD.Click, ButtonC.Click, ButtonB.Click ' 押されたボタンが正解のボタンかどうか調べる Dim senderButton As Button = CType(sender, Button) ' 正解のボタンを赤くする Answer.BackColor = System.Drawing.Color.Red End Sub End Class 以上です。 上記のプログラムに追加したい項目を挙げます。 1.問題文を複数用意し、ランダムに出題する。(ランダムに出題するという機能は乱数を使えば実現できるのはなんとなく分かるのですが、実際のプログラムが分かりません。 2.用意した問題全てを解答したら終わり。 以上のような流れにしたいのですが、実際にはどのようにプログラミングすれば良いのでしょうか?部分でも良いのでご指摘お願い致します。

  • クイズ作成に関して。

    HPにてクイズ問題(30問程度)を載せたいのですが、 そのクイズを作成できるサイトが見つかりません。 クイズ作成に関して、 1ランダムクイズが作成できる。 2ネット上にて更新ができる。   3携帯からも解答できる。 以上の3点をみたすサイトが全く見つかりません。 検索やリンク集を見まくったのですが、 自分の実力では、 どーしても見つけることが出来ません。 そこで是非お力をおかしいただけないでしょうか? 本当に困っております。 このままでは一歩も前に進めません。 それではよろしくお願いいたします。

  • クイズ作成に関して。

    HPにてクイズ問題(30問程度)を載せたいのですが、 そのクイズを作成できるサイトが見つかりません。 クイズ作成に関して、 1ランダムクイズが作成できる。 2ネット上にて更新ができる。  (ネットにてのCGIレンタルなど) 3携帯からも解答できる。 以上の3点をみたすサイトが全く見つかりません。 検索やリンク集を見まくったのですが、 自分の実力では、 どーしても見つけることが出来ません。 そこで是非お力をおかしいただけないでしょうか? 本当に困っております。 このままでは一歩も前に進めません。 それではよろしくお願いいたします。

    • 締切済み
    • CGI