VBA関数(UDF)でグローバルスコープのオブジェクトを作成できますか?私は機能の実行時間を超えて持続しますか?私は他の関数に渡すことができるユニークなキーを持つハッシュでそれを張りたいです。私はc#/ C++ dllでこれを行うことができることを知っています。VBA:Excelでセッション永続オブジェクト(ハッシュ)を作成する
モチベーションは、何百もの関数呼び出しを繰り返したくないという重大な処理です。結果をキャッシュして1回だけするだけです。例えばのは、私は結果がセルA1にオブジェクトを構築するUDFを持っている想像してみましょう:
=CreateResultsObject(arg1, arg2, arg3...)
機能が重い作業を行い、ユニークなID文字列(永続的なハッシュに格納されているオブジェクトのためのキー)を返します。セルA1にはこの文字列値が含まれており、他の関数に渡すことができます。キーを使用してハッシュ内のキャッシュされたオブジェクトにアクセスできます。
これは可能ですか?もしそうなら、どのように?
同じ考え素晴らしいおかげではなく、コレクション(または辞書)を使用して:)よりエレガントである(1) – JMax
ああ!あなたがモジュールスコープの変数を宣言できるかどうかは分かりませんでした。ありがとうvm –
記録のために、[Ozgridの変数の範囲についてのこのリンク](http://www.ozgrid.com/VBA/variable-scope-lifetime.htm)は役に立ちます – JMax