VBAに Evaluate という命令がある。
一般的には「ワークシート関数を実行する」ことに使われるらしい。が、どうやら「それに渡す引数をVBA関数とすれば、呼び出せる」らしい。
試したのが次のコード。Excel 2010 にて。
Sub test()
Evaluate "fnc01()"
End Sub
Sub fnc01()
MsgBox "動いた"
End Sub
これで test を実行すると動く。fnc01 は Sub, Function どちらでもよい。
これを試しての感想。
・なぜかメッセージが2回表示される。
・fnc01 にブレークポイントがあっても無視される。
2回実行されるのはやだなあ。Evaluate専用でない回避策があるといいのだが。
一般的には「ワークシート関数を実行する」ことに使われるらしい。が、どうやら「それに渡す引数をVBA関数とすれば、呼び出せる」らしい。
試したのが次のコード。Excel 2010 にて。
Sub test()
Evaluate "fnc01()"
End Sub
Sub fnc01()
MsgBox "動いた"
End Sub
これで test を実行すると動く。fnc01 は Sub, Function どちらでもよい。
これを試しての感想。
・なぜかメッセージが2回表示される。
・fnc01 にブレークポイントがあっても無視される。
2回実行されるのはやだなあ。Evaluate専用でない回避策があるといいのだが。