これは、Excel と VBA 用です。BondClass が Class Module で適切に定義されていると仮定します。#VALUE を取得します。Excel セルに「=GetBondPrincipal()」と入力すると、構文的に間違ったことをしたのでしょうか、それとも Excel/VBA では不可能なのでしょうか? 私が本当にやりたいことはこれです: Excel セルでユーザー定義のデータ型を返す
しかし、解決策を見つけることができません。少なくとも、以下でやりたいことが可能かどうかを知りたいです。
Option Explicit
Function InitializeBond(ir As Double, p As Double) As BondClass
Dim mybond As BondClass
Set mybond = New BondClass
Call mybond.Initialize(ir, p)
InitializeBond = mybond
End Function
Function GetBondPrincipal()
Dim b As BondClass
Set b = New BondClass
b = InitializeBond(0.03, 100) //the code quits here,
//it doesn't like the BondClass return type?
GetBondPrincipal = b.GetPrincipal()
End Function
私が提供した例では、InitializeBond を呼び出す必要はなく、「Call b.Initialize(.03,100)」と入力するだけでよいことがわかっています。これを行うと、コードは正常に機能します。しかし、組み込み型以外の型を返す UDF を取得できないようです。これを行う方法はありますか?非組み込み型の割り当てを定義する必要がありますか?