VBAプログラム
Dim 正解数 As Long
Dim 不正解数 As Long
Dim 開始タイム As Long
Dim 終了タイム As Long
Dim 結果タイム As Long
Dim 乱数上限 As Long
Dim 出題数 As Long
Dim シート選択 As String
Private Sub UserForm_Initialize()
シート選択 = "アイドル"
'シート選択 = "Subtitle"
'シート選択 = "SHINSEKAIより"
'シート選択 = "貴方解剖純愛歌"
'シート選択 = "ヒトリシズカ"
乱数上限 = 100
出題数 = 30
正解数 = 0
不正解数 = 0
MsgBox "タイピングスタート"
開始タイム = Timer
Call 文字列抽出
End Sub
Private Sub 文字列抽出()
Sheets(シート選択).Range("E2").Value = WorksheetFunction.RandBetween(1, 乱数上限)
Label1.Caption = Sheets(シート選択).Range("F2").Value
Label2.Caption = Sheets(シート選択).Range("G2").Value
Label3.Caption = Sheets(シート選択).Range("H2").Value
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
If TextBox1.Text = Label1.Caption _
Or TextBox1.Text = Label2.Caption _
Or TextBox1.Text = Label3.Caption Then
正解数 = 正解数 + 1
MsgBox "クリア" & 正解数, vbInformation
TextBox1.Text = ""
If 正解数 = 出題数 Then
終了タイム = Timer
結果タイム = 終了タイム - 開始タイム
MsgBox "エンド" & 結果タイム & "秒"
Call UserForm_Initialize
End If
Call 文字列抽出
Else
不正解数 = 不正解数 + 1
MsgBox "ミス" & 不正解数, vbCritical
TextBox1.Text = ""
End If
End If
End Sub
ワークシートのエクセル関数