Excel VBA質問箱 IV

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

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


27289 / 76732 ←次へ | 前へ→

【54766】Re:一定時間操作が無かった時にマクロを走らせる
発言  n  - 08/3/28(金) 17:35 -

引用なし
パスワード
   こんにちは。
SheetSelectionChangeごとにTが書き換わると同時に、
その回数分OnTimeで予約してる事は把握されてますか?
>勝手にまた開いてきます。
もそこに原因があります。
Bookが閉じた後も解除されていないOnTimeが残っている事になります。
対処方法としては、予約前に直前予約の解除をしなければいけないと思いますよ。

簡易的に考えて、x分後に閉じる処理、ではなくx分間隔で操作状況を調べる、
というので良ければ、昔書いた事があるサンプルです。

'ThisWorkbookモジュール
Option Explicit

Private Type POINTAPI
  x As Long
  y As Long
End Type

Private Declare Function GetCursorPos Lib "user32.dll" ( _
                   ByRef lpPoint As POINTAPI) As Long

Private MoP As POINTAPI
Private pasTime As Date
Private chkTime As Date
Private xx As Long
Private yy As Long

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
                     ByVal Target As Range)
  pasTime = Now
End Sub

Private Sub ontime_set()
  Dim tv As Date
  
'  ontime_reset
  tv = TimeValue("00:00:10")
  GetCursorPos MoP
  If (MoP.x = xx) And (MoP.y = yy) And (pasTime < (chkTime - tv)) Then
    'MsgBox "end?"
    ThisWorkbook.Close True
  Else
    xx = MoP.x
    yy = MoP.y
    chkTime = Now + tv
    Application.OnTime chkTime, "ThisWorkbook.ontime_set"
  End If
End Sub

Private Sub ontime_reset()
  If chkTime > Now Then _
    Application.OnTime chkTime, "ThisWorkbook.ontime_set", False
End Sub

起動と終了については、Workbook_Open/Workbook_BeforeClose などと
連携するなりなんなりと。

ただ、実務運用するかしないかは、
ファイルの使用用途を充分吟味した方が良いと思います。
あらゆるケースでも『上書き保存』して閉じるというのは、
私だったら避けたいとこですね。

0 hits

【54702】一定時間操作が無かった時にマクロを走らせる わいわい 08/3/26(水) 18:42 質問
【54703】Re:一定時間操作が無かった時にマクロを走... ハチ 08/3/26(水) 18:53 発言
【54706】Re:一定時間操作が無かった時にマクロを走... わいわい 08/3/26(水) 20:06 お礼
【54712】Re:一定時間操作が無かった時にマクロを走... VBWASURETA 08/3/27(木) 12:33 発言
【54748】Re:一定時間操作が無かった時にマクロを走... わいわい 08/3/28(金) 12:14 発言
【54751】Re:一定時間操作が無かった時にマクロを走... VBWASURETA 08/3/28(金) 13:23 回答
【54766】Re:一定時間操作が無かった時にマクロを走... n 08/3/28(金) 17:35 発言
【54767】Re:一定時間操作が無かった時にマクロを走... わいわい 08/3/28(金) 19:32 お礼
【54810】Re:一定時間操作が無かった時にマクロを走... わいわい 08/3/31(月) 11:21 お礼

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