|
関数オブジェクト
|
げんちゃん
|
 |
データNo:195 |
2013年04月28日(Sun) 19:18 |
|
|
|
|
|
業務で使えないかとVBAをかじっていたので、大変助かりました。
さて、題記の件ですが、標準モジュールのプロシージャは、Runメソッドで、クラスモジュールのプロシージャはCallByNameメソッドで呼び、関数オブジェクトクラスモジュールにVariant配列で引数を保持させれば関数オブジェクトが作れると思います。
拙いですが、自作してみました。だるまさんからご覧になって、いかがでしょう? http://www7.ocn.ne.jp/~r421/excel/Macros.zip Functor.xlaに実装してあります。
|
|
 |
Re:関数オブジェクト
|
だるま
|
 |
データNo:196
|
2013年05月08日(Wed) 22:14
|
|
|
 |
Re:関数オブジェクト
|
げんちゃん
|
 |
データNo:197
|
2013年05月09日(Thu) 00:34
|
|
|
|
ご覧いただいて光栄です。 Modern C++ Designという本にC++のテンプレートを使用した関数オブジェクトの実装があったので、同じことを試みました。 共通モジュールの関数を呼び出したときにByRef引数の戻り値が取得できないこと、戻り値があっても関数オブジェクトのアクセッサで読み出す必要があることなど、いまいちな点はありますが、「動的な関数呼び出しを使ったCommandパターン」を曲がりなりにも実現できたのではと思います。
|
|