ExcelのVBAからワークシート関数を呼び出す方法をまとめた。
ついでに、ネットで見かけたVolatileとかCalculateもおまけとしてメモ。
自宅のExcelならヘルプで確認できるけど、ヘルプをケチった環境だと辛いからなー。
WorksheetFunctionというのはネット上のあちこちで見かけたけど、Evaluateを見かけなかったのは調べ方が悪かったせいなんだろうな~。
それにしても、WorksheetFunctionで使えなくてEvaluateで使えたり、どっちでも使えなかったり、統一感が無さすぎ。
FormulaLocalに倣ってWorksheetFunctionLocalみたいなのでもいいから、独自環境でも全ての関数が使えるようなオブジェクトが欲しいぞ~。
ところで。
Evaluateを入力しようと思って補完機能で一覧を見てみたら、evalという関数があった。これはいったい何だろう?!と思ったが ヘルプには出てこないし、ネットで調べるには他の言語でいっぱい引っかかりそうなキーワードだし。
で、F2キーで出てくるオブジェクトブラウザで分類を探していたら、「VBAProject」の中に発見!
…って、そりゃ自分で定義した関数じゃねーか!(爆)
サンプルプログラムを作るときは、サブルーチンの名前なんか適当に付けて、覚えてないからなー。トホホ。
ところで。
そもそもは、VBAからワークシート関数を呼ぶよりも、ワークシートからVBAの関数を呼びたかったんだけど。ラッパー関数を作ってやればいくらでも呼べるけど、それじゃいちいち面倒だし。
VBAFunctionみたいなオブジェクトがワークシートから使えるようになってくれないかなー。