No65656.複数マクロの定期繰り返し実行について
タイトル | : 複数マクロの定期繰り返し実行について |
記事No | : 65656 |
投稿日 | : 2005/12/02(Fri) 18:43 |
投稿者 | : トモ |
OS:XP Access Version:2002
複数マクロの定期繰り返し実行について教えてください。 例えば、マクロ1・マクロ2・マクロ3・マクロ4があるとします。 マクロ1は警告音を鳴らすアクションのみのマクロで、
マクロ2は値の代入アクションで、 アイテム [Forms]![実行フォーム].[TimerInterval] 式 60000
マクロ3も値の代入アクションで、 アイテム [Forms]![実行フォーム].[TimerInterval] 式 0
この状態でフォームにて"開始"ボタンと"終了"ボタンを作成した "実行フォーム"を作成し、"開始"ボタンにはマクロ2を割り当て、 "終了"ボタンにはマクロ3を割り当て、 "実行フォーム"のフォームの「タイマ時」に「マクロ1」(警告音)を割り当て、 「タイマ間隔」は 0 にして"開始"ボタンをクリックすると1分間隔でマクロ1が実行されて 警告音が鳴るようになりました。
1分間隔で警告音を鳴らすマクロ1を実行させながら、マクロ4を1日に1回(定時)間隔で実行 させたいのですが、どうすればいいでしょうか? ちなみにマクロ4もマクロ1と同様、終了アクションがあるまで実行し続けたいです。
どうかよろしくお願いします。
|
タイトル | : Re: 複数マクロの定期繰り返し実行について |
記事No | : 65664 |
投稿日 | : 2005/12/02(Fri) 21:20 |
投稿者 | : まさ7251 |
> 1分間隔で警告音を鳴らすマクロ1を実行させながら、マクロ4を1日に1回(定時)間隔で実行 > させたいのですが、どうすればいいでしょうか? > ちなみにマクロ4もマクロ1と同様、終了アクションがあるまで実行し続けたいです。
1日に1回(定時)で動かすのでしたら、 マクロ1を実行した際に、システム時間をチェックし、 定時であれば、実行するような処理を組み込めばいいかと思います。
|
タイトル | : Re^2: 複数マクロの定期繰り返し実行について |
記事No | : 65668 |
投稿日 | : 2005/12/02(Fri) 23:29 |
投稿者 | : トモ |
まさ7251さん、ご回答ありがとうございます。
マクロ1が1分間隔で自動実行しながら、設定した時刻になったら マクロ4を実行させるということでしょうか> イメージなんとなく理解できるのですが、組み込み方がよく分かりません。 もう少しヒントをください。 よろしくお願いします。
> > 1分間隔で警告音を鳴らすマクロ1を実行させながら、マクロ4を1日に1回(定時)間隔で実行 > > させたいのですが、どうすればいいでしょうか? > > ちなみにマクロ4もマクロ1と同様、終了アクションがあるまで実行し続けたいです。 > > 1日に1回(定時)で動かすのでしたら、 > マクロ1を実行した際に、システム時間をチェックし、 > 定時であれば、実行するような処理を組み込めばいいかと思います。
|
タイトル | : Re^3: 複数マクロの定期繰り返し実行について |
記事No | : 65669 |
投稿日 | : 2005/12/02(Fri) 23:49 |
投稿者 | : まさ7251 |
> マクロ1が1分間隔で自動実行しながら、設定した時刻になったら > マクロ4を実行させるということでしょうか> > イメージなんとなく理解できるのですが、組み込み方がよく分かりません。 > もう少しヒントをください。 > よろしくお願いします。
時間を求めるのは、 Time関数とか、 NowとMinute関数を組み合わせるとか。 その周辺の時間関係の関数を組み合わせれば出来るかと思います。
あとは、If文で一致するかどうかを判断すればいいかと思います。
|
タイトル | : Re^4: 複数マクロの定期繰り返し実行について |
記事No | : 65671 |
投稿日 | : 2005/12/03(Sat) 00:42 |
投稿者 | : みるく |
ずっとAccessを立ち上げたまんまなんですか?
|
タイトル | : Re^5: 複数マクロの定期繰り返し実行について |
記事No | : 65675 |
投稿日 | : 2005/12/03(Sat) 02:42 |
投稿者 | : トモ |
> ずっとAccessを立ち上げたまんまなんですか?
はい、ずっと立ち上げたままです。 どうにもAccess初心者なもので、VBA使った組み込み方法が よくわかりません。
|
タイトル | : Re^4: 複数マクロの定期繰り返し実行について |
記事No | : 65676 |
投稿日 | : 2005/12/03(Sat) 02:49 |
投稿者 | : トモ |
> > 時間を求めるのは、 > Time関数とか、 > NowとMinute関数を組み合わせるとか。 > その周辺の時間関係の関数を組み合わせれば出来るかと思います。 > > あとは、If文で一致するかどうかを判断すればいいかと思います。
現在は"実行フォーム"の"開始"ボタンと"終了"ボタンで1分間隔で 警告音を鳴らしているのですが、別フォームを新規に作った方法でも可です。
|
タイトル | : Re^5: 複数マクロの定期繰り返し実行について |
記事No | : 65678 |
投稿日 | : 2005/12/03(Sat) 03:09 |
投稿者 | : みるく |
特に試してませんが、
マクロ1の続きに
条件 Format(Now(), "hh:mm") = "11:00"
アクション マクロの実行
引数 マクロ4
とか?
(あまり条件をシビアにすると成立しなくなるかも。)
|
タイトル | : Re^6: 複数マクロの定期繰り返し実行について |
記事No | : 65687 |
投稿日 | : 2005/12/03(Sat) 07:51 |
投稿者 | : トモ |
> 特に試してませんが、 > > マクロ1の続きに > > 条件 > Format(Now(), "hh:mm") = "11:00" > > アクション > マクロの実行 > > 引数 > マクロ4 > > とか? > > > > (あまり条件をシビアにすると成立しなくなるかも。)
ありがとうございます。 > Format(Now(), "hh:mm") = "11:00"
↑の条件は毎日11時なると実行するという意味でいいですか? こちらもまだ試してませんが、一度試してみます。
|
タイトル | : Re^7: 複数マクロの定期繰り返し実行について |
記事No | : 65689 |
投稿日 | : 2005/12/03(Sat) 09:29 |
投稿者 | : hatena |
> ありがとうございます。 > > Format(Now(), "hh:mm") = "11:00" > > ↑の条件は毎日11時なると実行するという意味でいいですか?
そうなります。 ただ、タイマ時イベントもそれほど正確な間隔で発生するわけでなく、 別のプロセスで重い処理をしているときなどは、ずれることがあるので、 ピンポイントでチェックすると実行されない可能性もあります。 例えば、10:59:59 にイベントが発生して、次に 11:00:59 にイベント発生するはずですが、そのとき重い処理が されていて、発生が1秒遅れて 11:01:00 になると実行されない というようなこともあり得ます。
条件に幅を持たせればいいですが、そうすると複数回実行されてしまう ことになりますので、フラグをたてて一回のみ実行するようにする、 というテクニックを使います。
一例を挙げると、 タイマ時イベントを設定しているフォームに テキストボックスを配置します。 フォーム名 実行フォーム テキストボックス名 実行結果 とします。
マクロ1の続きに 条件 Hour(Now()) = 11 And Left([Forms]![実行フォーム]![実行結果],5) <> Format(Now(),"mm/dd") アクション 値の代入 アイテム [Forms]![実行フォーム]![実行結果] 式 Format(Date,"mm/dd hh:nn") & "に処理開始"
条件 ... アクション マクロの実行 マクロ名 マクロ4
|
[次頁]

|