- 締切済み
excel vba フォーム DoEvent
Excel vba 下記のようにユーザーフォームでストップウォッチを動かしています。 計算問題のプログラムを動かし、指定問題数回答後、時間を表示して停止しようとしています。 問題点: ストップウォッチ起動後、セルに数字を入力しEnterを押してもUserFormに戻ってこず、時計は止まったままになります。 継続して時間を計測、表示する方法があればご教示お願いします。 Private Sub UserForm_Activate() Dim counttime As Variant Do While kentime > 0 counttime = Int((Timer - dblTimer) * 10) / 10 ‘小数点以下が“0”の時も“.0”の表示にする If Int(counttime) = counttime Then hyoujitime = Right(" " + CStr(counttime), 5) + ".0" Else hyoujitime = Right(" " + CStr(counttime), 7) End If Label1.Caption = hyoujitime DoEvents Loop End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1725/2595)
> ”オートメーションエラー”が発生し時計が再起動しません。 そうですか…。 変数kentimeがいまいちどのようなものか不明でしたので とりあえず標準モジュールでグローバル変数にして コマンドボタンの以下のコードで動かしたり止めたりしてみましたが、それなりにエラーもなく動きました。 Sub ボタン1_Click() If kentime = 1 Then kentime = 0 Else kentime = 1 End If UserForm1.Hide UserForm1.Show End Sub
- kkkkkm
- ベストアンサー率66% (1725/2595)
止めてその後再度動かしたい(タイマーの動作を見えるようにしたい)ということでしたら UserForm1.Hide UserForm1.Show のようにしてみてはいかがでしょう。
お礼
ありがとうございます。 userformのタイマーが止まった状態で hide や show を実行すると”オートメーションエラー”が発生し時計が再起動しません。 もう少し勉強してみます。