「ブロック機能」のリニューアルについて

VBAのクイズの作り方で質問があります。
参考にしたURL→https://www.sejuku.net/blog/93087

正解の表示に出来ず困っています。
不正解です。0番名の選択肢が正解です。とMsgBoxが出てきます。

サイト通りにやってみましたが中々うまくいけません。
どうかご教授お願い致します。

後、ランダムではなく上から順番に問題を出したいのですが、どのようなコードを書けばいいでしょうか?

よろしくお願いいたします。

「Excelマクロ&VBAでユーザーフォー」の質問画像

質問者からの補足コメント

  • ■UserForm1のコードです。
    続きは
    If pubIntAnserNo = selectOptionNo Then
    MsgBox "正解です!おめでとうございますー!"
    Exit Sub
    Else
    MsgBox "不正解です。" & pubIntAnserNo & "番名の選択肢が正解です。", vbCritical
    Exit Sub
    End If
    End Sub
    ■Module1に
    UserForm1.Show
    ■Module2に
    Public pubStrQuestion As String
    Public pubStrAnser1 As String
    Public pubStrAnser2 As String
    Public pubStrAnser3 As String
    Public pubStrAnserNo As String
    を入れてます。

    「Excelマクロ&VBAでユーザーフォー」の補足画像1
      補足日時:2022/02/04 16:12
教えて!goo グレード

A 回答 (3件)

Call QuizCreate



Sub QuizCreate() で
pubIntAnserNo に代入された値を確認してみましょう

#2 抜けていました
quizNo = 0
この0を変数にしてボタン押下ごとに +1する
    • good
    • 0

こんにちは


pubIntAnserNoが0と言う事は

Public pubStrQuestion As String '質問
Public pubStrAnser1 As String '選択肢1
Public pubStrAnser2 As String '選択肢2
Public pubStrAnser3 As String '選択肢3
Public pubIntAnserNo As String '正解No

グローバル変数になっていますか?

グローバル変数については
https://www.sejuku.net/blog/68356

後・・・
quizNo = Int(5 * Rnd + 1) ->>

quizNo = 0 のちに見出し分が+されているようです。
    • good
    • 1

こんにちは



>不正解です。0番名の選択肢が正解です。とMsgBoxが出てきます。
原因はいろいろ考えられるので、その上だけでは特定はできません。
 ・シートに正解番号が記されていない
 ・正解番号がパブリック変数になっていない
 ・正解番号を変数に設定していない
などなどが考えられます。

>サイト通りにやってみましたが中々うまくいけません。
「やったつもり」と「やっている」は全く違います。
丹念に見直してみましょう。


>ランダムではなく上から順番に問題を出したいのですが、~
ランダムに番号(quizNo)を決める代わりに、番号の初期値を1にしておいて、次の問題の時には順次 +1 してゆくようにすれば良いでしょう。
番号が5を超えたらどうするのか
 ・1に戻る
 ・ランダムに切り替える
 ・「ネタ切れ!」と表示する
などについては、質問者様のお考えによります。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング