1分毎の処理を60回行ったときに自動実行するマクロが動かないが?

Question 98.2 Excel VBA FAQ 掲示板より Previous Next
こんにちはVBA初心者ですが、
株価を一分毎にWEBクエリーで取得しシートに貼り付け、さらに一時間毎に四本値をエクセルで自動作成するマクロを組みたいのですが、一分毎の貼り付けは問題なく動きますが、60回カウント後、一時間毎の処理をするGoSubへどうしてもうまく飛んでいってくれません。
どこが悪いのでしょうか、どなたかご教授願えないでしょうか。よろしくお願いします。
Sub 自動記録1()
Dim counter
    Application.OnTime Now + TimeValue("00:01:00"), "自動記録1" '1分毎に実行
    If counter >= 60 Then GoSub time1 Else: counter = counter + 1
    Worksheets("一分値").Activate                '一分値をアクティブにする ※1
    Range("b3:d61").Copy                        'コピーする ※2
    Range("b2").Select                          '貼り付け先のセル範囲を選択する ※3
    ActiveSheet.Paste                           '現在の選択範囲に貼り付ける
    Range("b64:c64").Copy                       'コピーする ※2
    Range("b61").Select                         '貼り付け先のセル範囲を選択する ※3
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Exit Sub

time1:                                          '1時間毎に時間値をコピーする
    Worksheets("一時間値").Activate              '一時間値をアクティブにする ※1
    Range("b3:f61").Copy                       'コピーする ※2
    Range("b2").Select                          '貼り付け先のセル範囲を選択する ※3
    ActiveSheet.Paste                           '現在の選択範囲に貼り付ける
    Range("b65:f65").Copy                       'コピーする ※2
    Range("b61").Select                         '貼り付け先のセル範囲を選択する ※3
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    counter = 0
    Worksheets("一分値").Activate               '一分値をアクティブにする
    Return

End Sub
Answer   2009.9.27 永井善王
詳しくは見てありませんが、下記2カ所を修正すると、どうなりますか。
・2行目の 
Dim counter を削除するか、Sub 自動記録1() の行よりも上の行に変更する
・4行目の 
If counter >= 60 Then GoSub time1 Else: counter = counter + 1 を
       
If counter >= 60 Then GoSub time1 Else counter = counter + 1 に変更する (コロンを削除する)
ありがとうございました
ご指摘の2点を修正したら見事に飛んでいってくれました!
感謝感謝!! ありがとうございました! まだまだVBA初心者ですが今後ともよろしくお願いいたします。

 

Excel VBA Macro