2016-05-11 69 views
1

Excel 2010を使用しており、Excelでカウントダウンタイマーを作成したいと考えています。コードは、マクロが接続されたボタンを使用して開始および停止されます。この問題は、「開始」ボタンが押されたときに発生します。上記のコードでは、入力スポットとしてCell "B1"を使用しています。なぜなら、私はそれを動作させようとしていたからですが、試したたびに常に以下のようになります。 "マクロを実行できません。このブックまたはすべてのマクロが無効になっている可能性があります。VBA(Excel)を使用してExcel 2010でカウントダウンタイマーを作成

はいここに入れる前にすべてのマクロを有効にしました。私はユーザーの入力を受け取り、セル "B1"を使用する代わりにタイマーが始まる時間を作りたいと思っています。

'Macro for Starting the timer (attached to the start button) 
Sub startTimer() 
Application.OnTime Now + TimeValue("00:00:01"), "nextTick" 
End Sub 

'Macro for next second 
Sub nextTick() 
Sheet1.Range("B1").Value = Sheet1.Range("B1").Value - TimeValue("00:00:01") 
startTimer 
End Sub 

'Macro for stopping the timer (attached to the end button) 
Sub stopTimer() 
Application.OnTime Now - TimeValue("00:00:01"), "nextTick", , False 
End Sub 
+0

このコードは、**モジュール**コードシートまたは**シート**コードシートに記載されていますか?ワークシートの名前タブを右クリックして[コードを表示]を選択するとそこに行きましたか? [alt] + F11でVBEを開き、プルダウンを使用して[モジュール]を挿入しましたか? – Jeeped

+0

@Jeepedメインシートにあります – MTB

答えて

1

私は非常にわずかにあなたのコードを修正し、標準モジュールでそれを置く:

Public Future As Double 

Sub StartTimer() 
    Future = Now + TimeSerial(0, 0, 1) 
    Application.OnTime earliestTime:=Future, procedure:="nextTime", _ 
     schedule:=True 
End Sub 

Sub nextTime() 
    Sheet1.Range("B1").Value = Sheet1.Range("B1").Value - TimeValue("00:00:01") 
    StartTimer 
End Sub 

Sub StopTimer() 
    On Error Resume Next 
    Application.OnTime earliestTime:=Future, _ 
     procedure:="nextTime", schedule:=False 
End Sub 

両方StartTimer()は、stopTimerを()実行だけで罰金。

+0

これを見ていただきありがとうございます、これは広告されたとおりに正確に動作します。 – MTB

+0

@MTB ...................フィードバックに感謝します.................. –

+0

私は実行時にこれを動作させることができます。ユーザー入力を取得し、それを時間変数としてパンチした後、他のすべてのモジュールが完了したら、このモジュールが実行されます。 – MTB

関連する問題