Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11499 / 13645 ツリー ←次へ | 前へ→

【15743】タイマーがうまく作動しない? くま 04/7/5(月) 16:34 質問[未読]
【15744】Re:タイマーがうまく作動しない? IROC 04/7/5(月) 17:26 回答[未読]
【15760】Re:タイマーがうまく作動しない? くま 04/7/6(火) 8:36 回答[未読]
【15761】Re:タイマーがうまく作動しない? IROC 04/7/6(火) 9:09 回答[未読]
【15762】Re:タイマーがうまく作動しない? くま 04/7/6(火) 10:33 お礼[未読]
【15763】Re:タイマーがうまく作動しない? IROC 04/7/6(火) 11:07 回答[未読]
【15765】Re:タイマーがうまく作動しない? くま 04/7/6(火) 12:12 お礼[未読]

【15743】タイマーがうまく作動しない?
質問  くま  - 04/7/5(月) 16:34 -

引用なし
パスワード
   はじめまして。

下記のようにタイマーを60秒ごとに発生させる
タイミングでWorksheetにCalculateイベントを発生させていますが
数秒おきにイベントが発生してしまいます。

どこがまずいかご指摘をお願いできますでしょうか?
どうぞよろしくお願いします。


Sub Time_Chk1()
  On Error Resume Next
  
  Dim Nowtime
  
  '現在未接続状態の場合、再接続を試みる。
  If conect_flg = 0 Then
    'Winsock 起動
    Call Conect_Rtn
  End If
  '時間のSAVE
  old_time = Format(Now(), "hh:mm:ss")
  '時間の表示
  Workbooks(Book_1).Worksheets(Sheet_1).Activate
  Nowtime = Now()
  Workbooks(Book_1).Worksheets(Sheet_1).Cells(6, 3) = Format(Now(), "hh:mm:ss")
  '次回起動のセット
  Next_time1 = Now() + TimeValue("00:01:00")
  Application.OnTime Next_time1, "Time_Chk1", Schedule:=True

  
End Sub

【15744】Re:タイマーがうまく作動しない?
回答  IROC  - 04/7/5(月) 17:26 -

引用なし
パスワード
   DoEvents を入れてみては如何でしょうか?

【15760】Re:タイマーがうまく作動しない?
回答  くま  - 04/7/6(火) 8:36 -

引用なし
パスワード
   ▼IROC さん:
>DoEvents を入れてみては如何でしょうか?

下記のようにしてみたけどうまくいかないです。
入れる場所が悪いんでしょうか?
On Error Resume Next
  
  Dim Nowtime
  DoEvents
  '現在未接続状態の場合、再接続を試みる。
  If conect_flg = 0 Then
    'Winsock 起動
    Call Conect_Rtn
  End If
  '時間のSAVE
  old_time = Format(Now(), "hh:mm:ss")
  '時間の表示
  Workbooks(Book_1).Worksheets(Sheet_1).Activate
  Nowtime = Now()
  Workbooks(Book_1).Worksheets(Sheet_1).Cells(6, 3) = Format(Now(), "hh:mm:ss")
  '次回起動のセット
  Next_time1 = Now() + TimeValue("00:01:00")
  Application.OnTime Next_time1, "Time_Chk1", Schedule:=True
'  old_time = Format(Now(), "hh:mm:ss")
  DoEvents

【15761】Re:タイマーがうまく作動しない?
回答  IROC  - 04/7/6(火) 9:09 -

引用なし
パスワード
   こんな感じで動きますか?


Sub test()

DoEvents
    
    Worksheets("Sheet1").Calculate
 
    Range("A1").Value = Range("A1").Value + 1
  
    Application.OnTime Now + TimeValue("0:01:00"), "test"
End Sub

【15762】Re:タイマーがうまく作動しない?
お礼  くま  - 04/7/6(火) 10:33 -

引用なし
パスワード
   ▼IROC さん:
>こんな感じで動きますか?
>
>
>Sub test()
>
>DoEvents
>    
>    Worksheets("Sheet1").Calculate
> 
>    Range("A1").Value = Range("A1").Value + 1
>  
>    Application.OnTime Now + TimeValue("0:01:00"), "test"
>End Sub
ありがとうございます。うまくいきました。
あと便乗質問で非常に恐縮ですが
DoEventsを追加するとうまくいくようになるのでしょうか?
お忙しいところすみませんが、よろしければご教授お願いできますでしょうか。

【15763】Re:タイマーがうまく作動しない?
回答  IROC  - 04/7/6(火) 11:07 -

引用なし
パスワード
   >DoEventsを追加するとうまくいくようになるのでしょうか?

追加したときと
追加しなかったときで
比較してみてください。

私の環境では、
DoEvents
がないと、時間が正確でなかったです。

【15765】Re:タイマーがうまく作動しない?
お礼  くま  - 04/7/6(火) 12:12 -

引用なし
パスワード
   ▼IROC さん:
>>DoEventsを追加するとうまくいくようになるのでしょうか?
>
>追加したときと
>追加しなかったときで
>比較してみてください。
>
>私の環境では、
>DoEvents
>がないと、時間が正確でなかったです。

ないのとあるので比べてみたところ、微妙なずれがありました。
ありがとうございました。

11499 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free