データベースだけではない9
コンボボックスでステージを選択した時の処理です。
時間制限がある場合の処理が最初に入りますが、これは後にします。
通常のモードを示します。
この処理で、学習開始の準備が整います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
Private Sub com1_AfterUpdate() '学習モードによって異なる処理を書く。 'タイマーの設定が必要な場合の処理を書く。 'ステージ画面の初期化 Call all_v_false Call all_t_null 'ステージ毎の問題文 Me.Txt2 = str1Data(Me.com1 - 1) '改行があると画像指定が複雑となるので取り除く(一時的テキスト) tmptxt = Replace(Me.Txt2, vbCrLf, "") '問題文の長さ mlen = Len(Me.Txt2) '指定画像の位置取得 imglen = InStr(tmptxt, "jpg") '画像があるかないか If imglen > 0 Then '画像あり Me.Timg = upath & Left(tmptxt, imglen + 2) '改行ないのでLeftでok imgst = InStr(Me.Txt2, "jpg") '改行を含めた位置(問題文用) Me.objImg.Picture = Me.Timg Else '画像なし Me.objImg.Picture = "" End If 'as aeの位置 aslen = InStr(Me.Txt2, "as") aelen = InStr(Me.Txt2, "ae") '選択肢文字列 If aslen > 0 Then strsentakusi = Replace((Mid(Me.Txt2, aslen + 3, (aelen - aslen - 3))), vbCrLf, "") End If '選択肢の抽出及び数の取得 str2Data = Split(strsentakusi, ",") Me.Tans = UBound(str2Data) + 1 '問題数取得(問題文asのあとの1文字がその数値) mondaisu = Val(Mid(Me.Txt2, aslen + 2, 1)) '問題数に合わせた選択肢、解答欄の準備処理の呼び出し Call set_mon '正解を格納する '正解は、シャッフルする前の選択肢の先頭から問題数の分だけの文字列 For m = 1 To mondaisu seikai(m) = str2Data(m - 1) Next '選択肢をシャッフルする For i = UBound(str2Data) To 1 Step -1 P = Int((i + 1) * Rnd) buf = str2Data(P) str2Data(P) = str2Data(i) str2Data(i) = buf Next Me.Tmon = Mid(Me.Txt2, aslen + 2, 1) '変数mondaisuと同じ '最終問題文 If aslen > 0 And imgst > 0 Then '画像あり問題文 Me.Txt3 = Mid(Me.Txt2, imgst + 3, aslen - imgst - 4) ElseIf aslen = 0 And imgst > 0 Then '画像あり説明文 Me.Txt3 = Mid(Me.Txt2, imgst + 3) ElseIf aslen > 0 And imgst = 0 Then '画像なし問題文 Me.Txt3 = Mid(Me.Txt2, 1, aslen - 1) Else Me.Txt3 = Me.Txt2 '画像なし説明文 End If '選択肢の表示 For j = 1 To Me.Tans Me.Controls("Tsentakusi" & j) = str2Data(j - 1) Me.Controls("Tsentakusi" & j).Visible = True Me.Controls("Tsentakusi" & j).Enabled = True Next End Sub |
次回以降、学習者が解答したときの処理や正誤判定の処理へと進みます。
コメントを残す