• ベストアンサー

VBAのOnTimeが実行されません。

VBAのOnTimeが実行されません。 簡単なサンプルコードをコピーして実行させてみると、「マクロを実行できません。このブックでマクロが使用できないか、又は、全てのマクロが無効になっている可能性があります。」とメッセージが出ます。 しかし、マクロの設定は、全てのマクロを有効にするにチェックを入れてありますし、他のマクロは実行されます。 VBA初心者(1か月くらい)で、途方にくれています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

普通にできる手順: 1.標準モジュールを挿入する 2.その標準モジュールに sub Macro1() debug.print now application.ontime now + timeserial(0, 0, 2), "Macro1" end sub  と作成する 3.VBE画面を見ながら,Ctrl+Gでイミディエイトウィンドウを出しておいて,Macro1を実行する  イミディエイトウィンドウに,2秒ごとに時刻が表示されつづけたら成功。 ○もう一度,上述のその通りにやってみましょう。 ○もし上手く行ったら,あなたの上手く行かないマクロと一体「何が」違うのか,細かいところまで「全て」洗い出しましょう。  呼び出すマクロの名前の記入の仕方や,そもそもOntimeマクロと呼び出したいマクロを,それぞれどこに書いているのかなども。 ○そしてもっとも重要なポイントとして,今回のような「上手く行かないマクロ」のご相談では,実際に上手く動かなかった「あなたが書いて動かして動作失敗したそのマクロ」を手抜きせず恥ずかしがらず編集せずそのままご相談に掲示してください。 「このマクロを動かした」ら「こういう結果になってしまった」その様子を,具体的に目に見える通りにご質問で情報提供してください。そうすれば,この回答のように何が失敗しているのか全く見えないまままた「動かないかもしれない」マクロをわざわざ回答者が掲示して,さらに何がマズってるのか全然判っていないあなたが手探りで問題点を当たるみたいな,手間と時間の無駄も省けます。

lemmonmam
質問者

お礼

早速のご回答ありがとうございます。 おっしゃるとおりの作業で、成功しました。 直後に、標準モジュールで Sub Test()   MsgBox "時間です" End Sub Sub Sample1()   Application.OnTime EarliestTime:=TimeValue("11:58:00"), Procedure:="Test" End Sub    実行したら問題ありませんでした。 マクロの記入がシートにされていたことが原因でした。 基本テキストを読まずに、いきなりプログラムコピーをしていたので、基本事項が全く分かっていませんでした。

関連するQ&A