質問: VBA : Application.OnTime の使用法 ExcelVBAでApplication.OnTimeの 起動先プロシジャーを標準モジュール以外に書く方法があれば教えて下さい 例えば フォームモジュールで Sub XXX() Application.OnTime Now, ”ABC” End Sub Sub ABC() MsgBox ”ABC” End Sub としてXXXを実行すると 「ABCは実行できないか存在しません」みたいなエラーが出てしまいます。 ABCを標準モジュールに移せば済む話なのですが 出来れば同じモジュール(フォームモジュール)内で完結したいので 方法があれば教えて下さい。
回答: 未だに適切な回答が無いという事は不可能という事みたいだね。 標準モジュールにはABCに橋渡しする【だけ】の モジュールをかいたらどう? 実質的にはフォームモジュール)内で完結すると思うが。 例えば ユーザーフォーム(UserForm1)として フォームモジュールで --- UserForm1 --- Sub XXX() Application.OnTime Now, ”ABC” End Sub Sub ABC() MsgBox ”ABC” End Sub --- 標準モジュール --- Sub ABC() UserForm1.ABC ' この1行だけ End Sub 実行時標準モジュール経由となるが何の問題もなく ソースの管理としてはABC処理はUserForm1内で完結する