Excelで基礎講座ソフトを作ってみよう

Step 6 問題2(文字入力)の作成

1問目が出来たので、なるべく短いコードで連続し問題が作れるよう考えながら、問題2を作成します。




Homeに戻る > Excelでアプリケーションソフト > 基礎講座ソフトを作ってみよう

シートのVBAコード

下記のVBAコードを追加してください。

'問題2 答えのチェック
Private Function Ex2AnswerCheck() As Boolean
    Dim s1 As String
    
    Ex2AnswerCheck = False
On Error GoTo ErrExit:
    s1 = Range("D3")
    If s1 = "地球にやさしい" Then
        '答えが合っている
        Ex2AnswerCheck = True
    End If
    Exit Function
ErrExit:
End Function

下記のVBAコードに変更してください。

'問題1 答えのチェック
Private Function Ex1AnswerCheck() As Boolean
    Dim ln As Long
    
    Ex1AnswerCheck = False
On Error GoTo ErrExit:
    ln = Range("B10")
    If ln = 125 Then
        '答えが合っている
        Ex1AnswerCheck = True
    End If
    Exit Function
ErrExit:
End Function

'問題実行
Private Sub ExDoexercise(tim As Long)
    stTime = Timer
    'シートにフォーカス
    Sheet1.Range("A1").Select
    Do
        '経過時間の確認
        If ExTimeCheck(tim) Then
            '経過後の処理
            Label2.Caption = "時間切れです!!"
            Exit Do
        End If
    Loop Until endFlag = True
    'フォームにフォーカス
    UserForm1.Show
End Sub

'出来たボタン
Private Sub CommandButton2_Click()
    Dim bret As Boolean
    
    '終了フラッグ
    endFlag = True
    DoEvents
    
    Select Case ComboBox1.ListIndex
        Case 0: bret = Ex1AnswerCheck   '問題1
        Case 1: bret = Ex2AnswerCheck   '問題2
    End Select
    
    If bret Then
        Label6.ForeColor = &H8000&
        Label6.Caption = "正解です。よくできました。"
        '次の問題を表示する
        If ComboBox1.ListCount - 1 > ComboBox1.ListIndex Then
            ComboBox1.ListIndex = ComboBox1.ListIndex + 1
        Else
            '問題は終了
            ComboBox1.ListIndex = 0
            MsgBox "正解です。よくできました。" & vbCrLf & "問題はこれで終了です。お疲れ様でした。"
        End If
        Label4.Caption = ComboBox1.Column(1)
    Else
        Label6.ForeColor = vbRed
        Label6.Caption = "間違っています。"
    End If
    
    '経過時間をリセット
    Label1.Caption = 0
    Label3.Caption = "開始ステップを選択し、「始める」ボタンをクリックしてください。"
    ComboBox1.Enabled = True
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = True
End Sub

'開始ボタン
Private Sub CommandButton3_Click()
    Label6.Caption = ""
    CommandButton1.Enabled = True
    CommandButton2.Enabled = True
    CommandButton3.Enabled = False
    ComboBox1.Enabled = False
    
    '終了フラッグをリセット
    endFlag = False
    Label3.Caption = "ワークシート上で、課題を実行してください。"
    
    Select Case ComboBox1.ListIndex
        Case 0: '問題1
            Label2.Caption = "[ B10 ] セルに [ 125 ] と入力してください。"
            ExDoexercise (20)
        Case 1: '問題2
            Label2.Caption = "[ D3 ] セルに [ 地球にやさしい ] と入力してください。"
            ExDoexercise (10)
    End Select
    
    Label3.Caption = "開始ステップを選択し、「始める」ボタンをクリックしてください。"
    ComboBox1.Enabled = True
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = True
End Sub


実行中の画面

■問題2 「[ D3 ] セルに [ 地球にやさしい ] と入力してください。」の正解画面


Homeに戻る > Excelでアプリケーションソフト > 基礎講座ソフトを作ってみよう

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved