すぐに役立つエクセルVBAマクロ集 すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
FAQ
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile 500連発・組み方講座フォロー Big Color Pallet
[広告]
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
永井善王.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Excel VBA Macro ・ 開始終了 ・ FAQ
毎日指定の時刻にマクロを実行するには?
Question 71.4 開始終了 Previous Next
詳細は こちら サンプル012番の 「現在より一定時間後にマクロを実行する」 を参考に、毎日指定の時刻に実行したいのですが、うまくできません。 何処がいけないのでしょうか。
電源さえ入っていれば、excelが指定の時刻に起動するようにするにはどうしたらよいのでしょうか。
Sub 指定時刻にマクロを実行する()
Dim 指定時刻
Dim 待ち時間 As Variant
Dim myDate As Date
Dim myRange As Range
    Set myRange = Worksheets("sheet1").Range("a7")
    answer = Application.WorksheetFunction.Min(myRange)
    Workbooks.Open Filename:=("春海マクロ.xls")
    指定時刻 = DateValue(today()) + TimeValue("14:37:00")
    myDate = DateValue(today() + 1)
'              ↑この+1で次の日にも実行可能になるのですか?
初めてvbaに触れるのにいきなり500連発は無謀ですが、仕事なので必死です。 皆様楽しそうですが、私には苦痛です。 毎日500連発と出来る大辞典とネットで格闘しています。 教えてください。よろしくお願いします。
Answer   Copyright (C) 2005.1.7 永井善王
500連発第2弾を参考にしていただき、ありがとうございます。
「楽しそうな皆様」とは、同じ職場の人達のことでしょうか? そうだとすれば、このテーマは、あなたなら出来るだろうと見込まれて与えられたのでしょうね。 いい機会ですから成し遂げてしまいましょう。

自動運転のマクロは、出来上がったものを見ると難しいコードがなくて、こじんまりとしたものです。 しかし、タイマーを利用して、どのタイミングで、どのマクロを実行するのかという連携の取り方をしっかり押さえておくことが必要です。 お力は貸しますが、気合を入れて取り組んでください。
012番のダイアログ
進め方
(1) 012番のサンプルが正常動作することを確認する(右図)
(2) そのサンプルの中にある「Sub 一定時間後に実行するマク
  ロ名()」の中の3行のコードだけを本番用に変える
(3) (2)で改造した012番が正常動作することを確認する
(4) (3)の確認が終わったマクロを翌日の時刻を指定するよう
  に修正し、正常動作することを確認する
(5) (4)の確認が終わったマクロを「次の日にも実行可能」になるように再修正し、正常動作することを確認する

進め方の (1)〜(3)は自力で出来ますね。 ご質問文のマクロには、012番のサンプルにないコード(4〜8、10行目)があり、その用途を私は推察できませんが、一度、白紙に戻して 進め方 に沿って行くのが賢明かと思います。

(4)の補足
012番のサンプルは、現在より一定時間経過後(
同日中)にマクロを実行するようになっているので、あなたは、翌日の時刻を指定するためのコードとして、次のように考えました。
    指定時刻 = DateValue(today()) + TimeValue("14:37:00")
    myDate = DateValue(today() + 1)
考え方としては正解ですが、today となっている部分を Now に置換しましょう。 「today」はワークシート関数ですから、VBAではNow関数を利用して現在の日付と時刻を取得した方が簡単です。 現在とは通常、今日のことですから、翌日の指定時刻は次のようになります。
    指定時刻 = DateValue(Now) + 1 + TimeValue("14:37:00")
【注意点】
・ 012番のサンプルで、TimeValue("14:37:00") とある ""内の時刻は修正してもよい
・ マクロの実行が始まったら、翌日になって「一定時間後に実行するマクロ」の実行が終わるまで、パソコンの電源
 を切ってはいけない
・ 2日がかりでテストすることは能率的でないので、コントロールパネルで[日付と時刻]の設定を一時的に変えると
 良い

(5)の補足
「次の日にも実行可能」にするためには、マクロを再修正しなければなりません。 なぜならば 012番は一度限りで終わってしまいますが、あなたが取り組んでいるテーマは「自動運転」で、毎日毎日、繰り返すようにしなければならないからで、指定時刻をリセットするなど数々の工夫が必要になります。
Excel VBA マクロ 組み方講座 詳細は こちら
それをここで逐一解説するのは、とても大変なことですので、 まずは、下記ページを参考にして考えてみてください。
   
翌日の指定時刻にマクロを自動実行するには?
そのページだけでは理解しきれないようでしたら、拙著「ExcelVBAマクロ組み方講座」のP.316の「タイマー機能を活用しよう」が参考になると思います。全国の大型書店の棚に陳列されているはずで、立ち読みでも十分でしょう。置いてある図書館もあります。

以上を参考にしてチャレンジし、なお、上手くいかないようでしたら、エラーメッセージや上手くいかない状況の具体的説明と、あなたが作成したExcelブックをEメールに添付してお送りください。
では、頑張りましょう。

Click here to visit our sponsor