- ベストアンサー
Excelにストップウオッチ?をつけたいのですが
Excelで子供に試験問題を作っているのですが、シート内にボタンをつけて、スタートボタンをクリックすると時間を測りはじめて、終了ボタンを押すと、かかった時間を指定したセルに表示するようにしたいのですが、どのようにすれば良いでしょう?・・・ボタンの作り方はわかりますが、関数もしくはVBAの式がわかりません。 よろしく御願いします。Excelは2000です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
セルに書き込むのではなく、画面で表示できれば良いと言うことなら、以下のサンプルでどうでしょう。 標準モジュールに、以下のコードを貼り付けてください。 Public myTime As Date Public myFlg As Boolean Sub StopWatch() If myFlg = False Then 'スタート myTime = Now '現在の日時を変数に記憶します。 myFlg = True Else 'ストップ MsgBox "かかった時間 " & Format(Now - myTime, "h:mm:ss") 'かかった時間を表示。 myFlg = False End If End Sub ボタンは1つ(スタート/ストップ兼用)でいいです。 そのボタンに、このマクロを貼ってください。
その他の回答 (2)
- junijuni
- ベストアンサー率25% (12/48)
Public timer Sub StartTimer() timer = Time End Sub Sub EndTimer() term = Time - timer Sheet1.Cells(1, 1) = Second(term) 'かかった秒数をA1に表示 End Sub こんなかんじもOKです。 開始ボタンにStartTimer、終了ボタンにEndTimerをマクロ登録してください。
- happypoint
- ベストアンサー率36% (521/1422)
VisualBasic Editorを立ち上げ、標準モジュールを作成してください。 そこに、以下のコードを貼り付けます。 Sub StartButton() Range("A1").Value = Now '現在の日時をセルA1に書き込みます。 End Sub Sub StopButton() Range("C1").Value = Format(Now - Range("A1").Value, "h:mm:ss") 'かかった時間をセルA1に書き込みます。 End Sub そして、 シート上にボタンを作成し、開始ボタンにStartButtonマクロを、終了ボタンにStopButtonを登録してください。 なお、このサンプルでは、開始ボタンを押すとA1に開始時刻が記入されます。 そして、終了ボタンを押すとC1にかかった時間(秒数)が記入されます。 セルの番地などは、適宜書き換えてください。
補足
ありがとうございます。ただ、問題が生じました。説明に書かなかった私が悪いのですが・・・ シート内容は、子供向けの問題なんですが、式にRAND関数を使っていますので、ストップボタンを押すと問題が変わってしまうのです。RAND関数とストップボタンの両立はむりなのでしょうか? また他に、問題内容を新しくするためのボタンをCalculate を使って作ってあります。
お礼
バッチリです! ありがとうございました。