UDTを他の関数に渡そうとするたびに、このコンパイルエラーが発生します。「パブリックオブジェクトモジュールで定義されたユーザー定義型のみが、バリアントとの間で強制的に変換されるか、遅延バインド関数に渡されます。ユーザー定義型の操作方法を教えてください。
UDTを引数として使用してテストした唯一の内部関数はVarPtrです。 TypeNameやVarTypeを使用することさえできません。
明示的に特定のタイプを期待していない引数としてUDTを渡す方法はありますか?バリアントのようなものですが、UDTのものです。
また、配列/辞書/コレクションにUDTを格納したいと思っていますが、これも問題があるようです。 UDTは私のニーズに完璧に聞こえるが(別のクラスモジュールを持たなくてもよい)、非常に厳密に型付けされているように思える。
EDIT:VarPtrは引数を「Any」型とみなしているようです。そのため、VariantとUDTを受け入れるタイプかもしれません。問題は、Excelに組み込まれているVBA IDEでそのタイプを使用できないということです。
* *別のクラスモジュールを持つようになるわけではありません。あなたはあなたのエラーメッセージを読んでいませんでしたか? –
これはすべて既にクラスモジュールではなくモジュール内にあります。私はすべてを1つのモジュールで定義し、複数のモジュールでは定義しません。 –
自分自身にこの制約を課すことで、あなたは傷ついた世界にあなた自身を開きます –