[[20090427154903]] 『指定時間に開いているブック全保存』(としまる) ページの最後に飛ぶ

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

 

『指定時間に開いているブック全保存』(としまる)

 いつも大変お世話になります。
 以下の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


コメント返信:

[ 一覧(最新更新順) ]


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