Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
時間がきたら実行でエラーがでます。
投稿日時: 20/07/18 12:07:00
投稿者: ngc1955

Sub Sample1()
  Application.OnTime EarliestTime:=TimeValue("11:58:00"), Procedure:="Test"
End Sub
 
Sub Test()
  MsgBox "時間です"
End Sub
 
エラーメッセージ:
パス名+ファイル名!Testを実行できませんこのブックでマクロが使用できないかまたはすべてのマクロが無効になっています
 
状況:
このコードを実行させたのはシートに配置したcommadbutton2のクリックイベントです。起動前にマクロは有効にしてあります。なお、試しにマクロのセキュリティを「すべてのマクロを有効にする」にして起動しても同じでした。

回答
投稿日時: 20/07/18 13:25:11
投稿者: simple

Sub Test()
  MsgBox "時間です"
End Sub
これを、標準モジュールに移せばよいと思います。

回答
投稿日時: 20/07/18 14:03:25
投稿者: simple

OnTimeのヘルプには書かれていませんね。
割と間違い易い大事なことですが。
 
どうしてもシートモジュールに書いたプロシージャを指定したいということであれば、
Procedure:="Sheet1.Test"
などとシートモジュールを指定した書き方になるのでしょう。
(一応動作することは確認しました。
  Version依存かも知れないので、念のため書くと、当方の確認した環境はExcel2010です。)

投稿日時: 20/07/18 14:43:46
投稿者: ngc1955

標準モジュールに移したら完全に動作しました。
ネットで懸命に調べたのですが、わかりませんでした。
本当にありがとうございました。