- ベストアンサー
マクロ自動更新設定と普段は動かない設定について
Const SetTime As Date = #5:00:00 AM# If (Time >= SetTime) And _ (Time <= SetTime + TimeValue("00:01:00")) Then '--実行--' End If このコードをOPENイベントに入れれば自動更新ができると教えてもらったのですが・・・ まず、 このコードを入れる箇所の、OPENイベントって どこ部分の事でしょうか? 更に、仮にこのコードを入れれた場合、 ・5時にエクセルが起動する ↓ ・エクセル内のマクロが自動で起動する ↓ OK(^^) でも・・・ マクロが動くのは、5時の自動更新だけでいいので、通常エクセルを開いた状態ではマクロは自動に働かなくもいいです。このようコード記述を教えて下さい。 この説明で分かるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>上のコードだと指定した時間に動きません #1にも書いていますが、指定した時間に動かすというコードではありません。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
ご質問の内容は、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1452963 まだ、クローズされていませんが、こちらに返事をつけてください。 >1.エクセルを一日置き(朝5時)に自動で立ち上げる。(たぶんタスクで設定できる?) ショートカットを置いて、タスクで行ってください。そうしなければ、ずっとExcelを開けて、OnTime メソッドを置かなくてはなりません。 >2.立ち上がった場合は、マクロを自動で動かす。 >立ち上げた場合に自動で動かす方法は分かったのですが、これだと普段見る場合も >マクロが動いてしまって >定期的に自動で更新しないとうまくいかないので・・・ とご自分で書いているのではありませんか? つまり、その時だけしか、マクロは動きません。 >このコードをOPENイベントに入れれば自動更新ができると教えてもらったのですが このようなことは、私は書いておりません。
お礼
すいません gooの使い方が無知なもので・・・ 内容を参考にしてみたいと思います。 ありがとうございました。 でも、今のマクロの編集画面が開かないという新たな問題が発生 うーん困った
補足
Private Sub Workbook_Open() Const SetTime As Date = #5:00:00 AM# If (Time >= SetTime) And _ (Time <= SetTime + TimeValue("00:01:00")) Then '--実行--' Sheet2.CommandButton1.Object.Value = True End If End Sub 度々すいませんが 上記コードは、どうなんでしょうか? ・Openイベントに 5時を指定 ・その次にシート2のボタンをクリック IFの間にボタンを押すコードを入れましたが正しいでしょうか?その後に入れるものなのでしょうか? エクセルを開いたままで、動かしてみると、上のコードだと指定した時間に動きません。閉じた状態でも同じです。 何が悪いのでしょうか? エクセルを開いた状態で、 AM5時にシート2のボタンを押す。 タスクの設定はうまくいかないので、エクセルファイルを開いた状態でも構いませんので教えて下さい。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
VBEで、ThisWorkbookを選んで、ダブルクリックして 左側のプルダウンメニューを (General) から Workbook に変更します。 すると、 Private Sub Workbook_Open() End Sub というのが表示される(書かれる)と思いますが、これがOpenイベントです。 この部分にコードを書いても、5時にエクセルが起動するということはありません。 タスクスケジューラーなどで、5時にこのエクセルファイルを起動するようにしておけば、起動したときに、このスクリプトが実行されます。 質問文のスクリプトでは、5時から1分以内の時に、 '--実行--' の部分に書かれたスクリプトを実行します。 それ以外の時間帯の場合には、何もしません。
お礼
内容を参考にしてみたいと思います。 ありがとうございました。 でも、今のマクロの編集画面が開かないという新たな問題が発生 うーん困った
補足
Private Sub Workbook_Open() Const SetTime As Date = #5:00:00 AM# If (Time >= SetTime) And _ (Time <= SetTime + TimeValue("00:01:00")) Then '--実行--' Sheet2.CommandButton1.Object.Value = True End If End Sub 度々すいませんが 上記コードは、どうなんでしょうか? ・Openイベントに 5時を指定 ・その次にシート2のボタンをクリック IFの間にボタンを押すコードを入れましたが正しいでしょうか?その後に入れるものなのでしょうか? エクセルを開いたままで、動かしてみると、上のコードだと指定した時間に動きません。閉じた状態でも同じです。 何が悪いのでしょうか? エクセルを開いた状態で、 AM5時にシート2のボタンを押す。 タスクの設定はうまくいかないので、エクセルファイルを開いた状態でも構いませんので教えて下さい。
補足
そうなんですか・・・ エクセルファイルと開っきぱなら、動くと勘違いしていました。 となると 5時に自動で更新させる手段は、タスク設定しかないのでしょうか? タスク設定の質問と回答を見て、色々と試したのですが うまくいかないです・・・ 他に方法はありますか?