2017-07-11 72 views
-3

Yield()を使用して債券の満期までの利回りを計算したいとします。 Yield()はExcelワークブックで使用できますが、VBAではこの機能が見つかりません。VBAのYield関数の使用

使用可能なWorksheetFunctionではなく、[atpvbaen.xls]参照の関数としても表示されません。誰もVBAでYield()を使用しようとすると何か提案や経験がありますか?

私は成功せず、次のことを試してみました:

Dim s as Double 
    s = [Yield(settle, maturity, coupon, price, 100,2,1)] 

コンパイラは私の型の不一致エラーが発生します。

使用時:

Debug.Print [Yield(settle, maturity, coupon, price, 100,2,1)] 

を即時ウィンドウがエクセルの旧バージョンからのエラー2029

+2

あなたは何を試してみましたか?クイック[検索](https://www.google.com/search?q=Yield()+ in + VBA)では、多数のリンクが見つかります。あなたはそれらのいずれかを試しましたか? – BruceWayne

+0

'Debug.Print [Yield(args)]' –

+0

VBAでYield()を利用する方法に関する明確な答えはありません。 – liujm

答えて

0

Yield()機能がno longer availableであることを示しています。 Analysis ToolPakアドインでさえも。

あなたの最善の策は、次のようにVBAでUDF(ユーザー定義関数)を作成するために、次のようになります。

Function YieldToMaturity(Coupon As Currency, FaceValue As Currency, _ 
Price As Currency, YearsToMaturity As Integer) As Single 

YieldToMaturity = (Coupon + ((FaceValue - Price)/YearsToMaturity)) _ 
/((FaceValue + Price)/2) 

End Function 



一度あなたが押してワークシートのセルに関数を呼び出すことができます作成Shift + F3を選択し、[関数の挿入]ダイアログボックスのドロップダウンメニューから[ユーザー定義]を選択します。

出典: financeformulas.net

関連する問題