[[20140703020350]] 『一定時間で上書きすると勝手にファイルが開いてし』(とろ) ページの最後に飛ぶ

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

 

『一定時間で上書きすると勝手にファイルが開いてしまう』(とろ)

マクロ初心者です
ファイルを開いたら5分おきに上書き保存するマクロをネットで見つけ実行しました。
 これでファイルを開くと同時に一定時間おきに上書き保存できたのですが、カレントシートを閉じても、上書き保存のタイミングで再び開いてしまいます。一度カレントシートをとじたら再び開かないようにすることはできるのでしょうか?(カレントシートのXでマクロが終了するようなやり方でもいいのですが・・・)

Sub Auto_Open()
macro1
End Sub

Sub macro1()
ThisWorkbook.Save
Application.OnTime Now + TimeSerial(0, 5, 0), "macro1"
End Sub

※同じマクロを組んだファイルを複数作成し、二つのファイルを同時に開いて使用しています。
どなたかご教示いただければ幸いです。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 macro1は、
 5分毎にmacro1を実行する(つまり、5分毎にこのマクロがあるブックを保存する)という機能を持つコードです。

 このコードは、対象ブックを閉じても5分経てば、このブックが呼び出されてmacro1を実行し、
 再び5分後にmacro1を実行するというタイマーをセットします。

 >一度カレントシートをとじたら再び開かないようにする
 Application.OnTime Now + TimeSerial(0, 5, 0), "macro1" 
 ↑このメソッドで5分後にmacro1を実行するというタイマーをセットしていますから、
 ブックを閉じる時には、上記のタイマーを取り消すような処理が必要です。

 Ontimeメソッドを調べると、既に設定したタイマーを取り消す方法が見つかると思います。

 それをブックが閉じるときのイベントで実行してください。

 1 まずは、Ontimeメソッドを使って、既に設定したタイマーを取り消す方法を調べる

 2 ブックを閉じる時にタイマーを取り消せばよいのですから(Ontimeメソッドを使う)、
    ブックを閉じる動作で作動するコードを作るには、どのようにすればよいか

  この二つを調べてみてください

(ichinose) 2014/07/03(木) 06:29


ご回答ありがとうございます
なんとか調べてみましたが実行するに至りませんでした。
ただなんとかこの辺にたどりつきました。あっているかわかりませんが・・・

1 Application.OnTime Schedule:=False

2 ActiveWorkbook.Close  

ここから先がどういうふうにすればいいのかがわかりません。おそれいりますが再度ご教示願います。
(とろ) 2014/07/03(木) 10:11


いろいろ試していますが
outo_closeをためしましたがエラーが出てしまいます。
できましたらなにか手がかりだけでもご教示願いたく存じます
(とろ) 2014/07/03(木) 15:05

 >できましたらなにか手がかりだけでも
 ですから、タイマー解除をApplication.OnTimeを使って行う方法を調べる と申し上げたのですが・・。

http://yumem.cocolog-nifty.com/excelvba/2011/05/ontime-f016.html

 この辺りをよく読んで 例題コードを実行して確認してください。

 それから、
 >outo_closeをためしましたがエラーが出てしまいます。 

 正確には Auto_Closeですが、
 エラーになるコードを掲載しなければ 何が間違っているのか わかりませんよね!!

(ichinose) 2014/07/04(金) 08:54


お世話になります
アドバイスありがとうございます
初歩的なところから調べています
少し時間がかかりそうです
進展があり次第ご報告したいと思います

コメント返信:

[ 一覧(最新更新順) ]


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