シートのVBAコード
下記のVBAコードを追加してください。
Option Explicit
'フォームの初期化完了フラッグ
Private forminitFlag As Boolean
下記のVBAコードに変更してください。
'経過時間の確認
Private Function ExTimeCheck(passtime) As Boolean
Dim ln As Long
ln = Timer - stTime
'経過時間を表示
Label1.Caption = passtime - ln
If ln >= passtime Then
ExTimeCheck = True
Else
ExTimeCheck = False
End If
DoEvents
End Function
'コンボボックスの2列目を表示
Private Sub ComboBox1_Change()
If forminitFlag = False Then
'フォーム未初期化
Exit Sub
End If
If Not IsNull(ComboBox1.Column(1)) Then
Label4.Caption = ComboBox1.Column(1)
Else
Label4.Caption = ""
End If
End Sub
'開始ボタン
Private Sub CommandButton3_Click()
CommandButton1.Enabled = True
CommandButton2.Enabled = True
CommandButton3.Enabled = False
'終了フラッグをリセット
endFlag = False
Label3.Caption = "ワークシート上で、課題を実行してください。"
Ex1exercise
Label3.Caption = "開始ステップを選択し、「始める」ボタンをクリックしてください。"
CommandButton1.Enabled = False
CommandButton2.Enabled = False
CommandButton3.Enabled = True
End Sub
'フォームオープン前のイベント
Private Sub UserForm_Initialize()
forminitFlag = False
'終了フラッグ
endFlag = False
'2列に設定
ComboBox1.ColumnCount = 2
'2列目をコンボボックスのデータとします。
ComboBox1.BoundColumn = 2
'リストをクリア
ComboBox1.Clear
ComboBox1.AddItem "Step 1"
ComboBox1.List(ComboBox1.ListCount - 1, 1) = "セルに数字入力"
ComboBox1.AddItem "Step 2"
ComboBox1.List(ComboBox1.ListCount - 1, 1) = "セルに文字入力"
ComboBox1.ListIndex = 0
Label4.Caption = ComboBox1.Column(1)
forminitFlag = True
End Sub
実行中の画面
■開始画面
Step1が表示され、残り時間は0になっています。
■Step選択
現在、開始時にコンボボックスにStep2までセットしています。
■開始
「始める」ボタンをクリックすると、課題が表示されカウントダウンが始まります。
■時間切れ
カウントダウンが0になると、終了しメッセージが表示されます。