プロが教えるわが家の防犯対策術!

今のコードを載せます
Sub test_StopwatchCell()
If did Then
kStopwatch
Else
kStopwatch Range("a1")
End If
End Sub
上のコードはエクセルワークシートにフォームのボタンを配置して、test_StopwatchCell 関数を登録し、クリックで測定開始し、もう一度クリックで測定停止するマクロですが、一時停止のボタンを新たに作りたいのですが、どうしたらいいのか教えて下さい。お願いします。

A 回答 (3件)

No.2です。


そうですね・・・
「開始/停止(トグル)」と書いてあったので、てっきりその時間から始めると思ってしまいました。
勝手にプログラムに手を加えるのは良くないかもしれませんが・・・
たとえば標準モジュールの
Sub kStopwatch(Optional obj As Object)
の中の8行目位の
>dstart = timeGetTime
が、
dstart = timeGetTime - obj.Value * 86400000 '86400000=60*60*24*1000
だったら、現在の時間から始めるかもしれません。
    • good
    • 0
この回答へのお礼

教えて下さったとうり変更してみたらできました!
まさに知りたかったのはこのことです。親切に教えて下さって本当に助かりました。VBを勉強している最中で分からないことだらけですが、これから少しずつ上達していきたいと思ってます。
とても役に立ちました。有難うございました。

お礼日時:2009/05/22 07:19

kStopwatch が


>http://homepage2.nifty.com/kmado/ke_m8.htm
のストップウォッチの事なら、2つのコマンドボタンを用意して、以下ではどうでしょうか?
本物のストップウォッチもこんな風なボタン配置ではなかったでしょうか?

'スタート・一時停止ボタン
Private Sub CommandButton1_Click()
kStopwatch Range("A1")
End Sub
'クリアボタン
Private Sub CommandButton2_Click()
kStopwatch 'カウント中の場合でも停止
Range("A1").Value = 0
End Sub

p.s.
プログラムの先頭に
'kStopwatch関数 ストップウォッチの開始/停止(トグル)
とありました。
実行中に呼ばれる事で一時停止になるようです。

この回答への補足

>kStopwatch が
http://homepage2.nifty.com/kmado/ke_m8.htm
のストップウォッチの事なら・・・・

まさにそのことです。
ご回答ありがとうございます。
これで一時停止できるようにはなったのですが、再スタート(スタート・一時停止ボタンを押す)しようとすると、カウントがまた0からになってしまうので困っています。一時停止し、もう一度押すことでその続きからカウントするようにするにはどうしたらいいのでしょうか。ぶしつけですみませんが、ご指導お願いします。

補足日時:2009/05/21 18:00
    • good
    • 0

kStopwatch1の中の時間を数えている部分に


フラグを判定する部分または
セルまたはさらに別のボタンの値を読み取るかする
部分を追加して、
その値が一時停止させたい値なら時刻カウントを
しないようにすればいいと思います。
 引数としてRange("a1")のように値を利用できる
みたいですから、A2などのセルの値を利用するのが
手っ取り早そうですが・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!