[[20090202130042]] 『ファイルを閉じる時、OnTimeを解除する』(カルロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

 『ファイルを閉じる時、OnTimeを解除する』(カルロ)

 こんんちわ。いつもお世話になります。

 Application.OnTime命令を利用して

 Public TimeStop As Date

 ****UserForm1フォーム内に入力*************************
 SUB OK()
 Dim 作業時間 As String

 作業時間 = 5
 TimeStop = Now + TimeValue("00:" & 作業時間 & ":00")
 End Sub

 SUB 次へ()
 'OnTimeソメッドの解除
 If TimeStop > Now Then
    Application.OnTime TimeStop, "中止", , False
 End If
 End Sub
 *********************************************

 **** 一般モジュールに入力 ****************
 Sub 中止()        
    MsgBox "時間になりました。中止します。", 48, "警告"           
    Unload UserForm1
 End Sub

 'ファイルを閉じる
 Private Sub auto_close()
 Application.DisplayAlerts = False: ActiveWorkbook.Close
 End Sub
 ******************************************

 UserForm1に"OK"ボタンと"次へ"ボタンがあり
 "OK"ボタンを押したら"OK"マクロを動かして5分以上経過したら"中止"マクロが動いて処理を中止します。
 5分以内に"次へ"ボタンを押すと"次へ"マクロが動いてOnTimeソメッドを解除します。
 "中止"マクロは動きません。
 そこで質問ですが、
 "OK"マクロを動かしたまま5分以内にファイルを閉じます。
 再度 同じファイルを立ち上げると"OK"マクロが生きていて"中止"マクロが動いてしまいます。
 ファイルを閉じる時にOnTimeソメッドの解除をしたいのですが。。。
 どうすればよいのでしょうか?教えて下さい。
 よろしくお願いします。


 auto_closeで
   Application.OnTime TimeStop, "中止", , False
を実行してはいかがでしょう。
(みやほりん)(-_∂)b


 みやほりんさん回答有難うございます。
 auto_closeにApplication.OnTime TimeStop, "中止", , False
 を入力後、ファイルを閉じたらコンパイルエラー(引数の型が一致していません。または不正なプロパティ
 を設定しています。)がでました(カルロ)

 間が空いてしまって申し訳ありません。
 Public TimeStop As Date
をユーザーフォームモジュールで宣言してありませんか?
その場合はプロジェクトレベル変数とはいえ、ユーザーフォームをUnLoadした時点で
プロジェクトレベル変数のスコープから外れてしまいます。
こちら(Excel2003)では「Ontimeメソッドは失敗しました。」になるので
違っている可能性がありますが。
エラー発生時にTimeStopをデバッグしてみてください。
(みやほりん)(-_∂)b

 みやほりんさん回答有難うございます。
 おっしゃるとおり"Public TimeStop As Date"をユーザーフォームモジュールで宣言
 しています。
 >エラー発生時にTimeStopをデバッグしてみてください。
 "auto_close"内に"Application.OnTime TimeStop, "中止", , False"を
 入れファイルを閉じたら「Ontimeメソッドは失敗しました。」というメッセージがでました。
 UnLoadした時点でプロジェクトレベル変数のスコープから外れているようです。
 どのようにしたらよいのでしょうか?教えて下さい(カルロ)


 Public TimeStop As Date
を標準モジュールで宣言して見てください。
(みやほりん)(-_∂)b

 みやほりんさん回答有り難うございます。
 標準モジュールで試してみます。
 結果は、来週の火曜日になります。お手数をお掛けしました。
 今後ともよろしくお願いします(カルロ)

 >Public TimeStop As Date
 >を標準モジュールで宣言して見てください。
 みやほりん さん回答有難うございます。上記 記述を追加しましたが、
 ファイルを閉じる時に「'OnTime'ソメッドは失敗しました。'_Application"オブジェクト」
 というメッセージがでます。
 この問題は、もともとファイル利用者が処理を終了しないうちにファイルを閉じてしまうのが
 原因です。処理が完了するまで待ってファイルを閉じるよう周知します。
 何度も申し訳ありません。今後とも よろしくお願いします(カルロ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.