『指定時間に開いているブック全保存』(としまる) いつも大変お世話になります。 以下のVBAに関し、AM10時30、PM12:30、PM3:00に自動実行したいのですが、 どのように修正したらよろしいでしょうか? ご指導お願いいたします。 内容 EXCELが立ち上がって一つ以上のBookが立ち上がっている際のみ、 以下のVBAを自動実行(上書き保存)したい。 自動実行の時間帯はAM10時30、PM12:30、PM3:00とする。 また、自動実行以外に任意でVBAを実行すると、開いているBookが全て保存される。 Sub 開いているブック全保存() For Each w In Application.Workbooks w.Save Next w MsgBox "全保存終了しました。" End Sub 宜しくお願いいたします。 ---- ---- ちょっと考えすぎてましたので、直前の投稿は削除しました。 Ontimeメソッドを使うと可能です。 Sub set_sch() Dim tt As Variant For Each tt In Array(TimeValue("10:30:00"), _ TimeValue("12:30:00"), _ TimeValue("15:00:00")) Application.OnTime tt, "開いているブック全保存" Next end sub 実際には、時刻を変えて試してみてください。 ---- おはようございます。 上記をコメントしていただいた方への質問です。 最終的なVBAは以下の通りとなるみたいですが、 Sub 開いているブック全保存() For Each w In Application.Workbooks w.Save Next w MsgBox "全保存終了しました。" End Sub Sub set_sch() Dim tt As Variant For Each tt In Array(TimeValue("09:03:00"), _ TimeValue("12:30:00"), _ TimeValue("15:00:00")) Application.OnTime tt, "開いているブック全保存" Next End Sub これだと、都度、フォームボタン等を専用でつくり、 Sub set_schのVBAを実行しないとタイマー実行が実行されないみたいですが、 EXCELを起動すれば自動的にタイマー実行のみ実行が可能なVBAに修正希望です。 尚、自動実行以外に任意でVBAを実行すると、開いているBookが全て保存される、条件はそのままです。 宜しくお願いいたします。 (としまる)20090428 9:10 ---- こんにちは。かみちゃん です。 横から失礼します。 > 上記をコメントしていただいた方への質問です。 上記のコメントをした者ではありませんが、 Thisworkbook モジュールに Private Sub Workbook_Open() Call 開いているブック全保存 End Sub とするか、 標準モジュールに Sub Auto_Open() Call 開いているブック全保存 End Sub とすることでできると思います。 以下も参照されるといいかと思います。 「ブックが開いたとき自動で」 http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040817.html (かみちゃん) 2009-04-28 9:23 ---- (かみちゃん)さん、ご回答ありがとうございました。 できました。 (としまる)20090428 12:30