VBAのRate関数について解説しています。
Rate関数は、VBA関数の中で財務関数に分類される関数です。
Rate関数は、倍精度浮動小数点数型 (Double) の値を返します。投資期間を通じての利率を返します。
構文 | Rate(nper, pmt, pv[, fv[, type[, guess]]]) | |
---|---|---|
引数 | 省略 | 説明 |
nper | × | 投資期間全体での支払い回数の合計を示す倍精度浮動小数点数型 (Double) の値を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。 |
pmt | × | 毎回の支払額を示す倍精度浮動小数点数型 (Double) の値を指定します。支払額には通常、元金と利息が含まれ、支払額を投資期間内に変更することはできません。 |
pv | × | 現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を示す倍精度浮動小数点数型 (Double) の値を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。 |
fv | ● | 投資の将来価値、または最後の支払いを行った後に残る現金の収支を示すバリアント型 (Variant) の値を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したものとみなされます。 |
type | ● | 支払い期日を示すバリアント型 (Variant) の値を数値で指定します。各期の期末に支払う場合は 0、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したものとみなされます。 |
type | ● | 利率の推定値を示すバリアント型 (Variant) の値を指定します。省略すると、0.1 (10%) を指定したものとみなされます。 |
投資とは、一連の定額の支払いを一定の期間行うことです。たとえば、住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。
出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定します。
Rate 関数は、反復計算の手法を用いて利率を計算します。名前付き引数 guess の値を初期値とし、計算結果の誤差が 0.00001% 以内になるまで反復計算が実行されます。反復計算を 20 回行っても適切な解が見つからない場合は、エラーとなります。推定値に 10% を指定した場合にエラーになったときは、名前付き引数 guess の値を変えてみてください。
次の例は、Rate 関数を使って、実際の利率を計算します。支払い回数 (TotPmts)、支払い額 (Payment)、現在価値または元金 (PVal)、将来価値 (FVal)、支払い期日 (PayType)、利率の推定値 (Guess) を指定します。
Sub sample()
Dim Fmt, FVal, Guess, PVal, Payment, TotPmts, PayType, APR
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' 支払い期日を設定します。
Fmt = "##0.00" ' パーセンテージの形式を定義します。
FVal = 0 ' 通常、ローンの場合は 0 を指定します。
Guess = .1 ' 推定値を 10% に指定します。
PVal = InputBox("借入金額を入力してください。")
Payment = InputBox("毎月の支払い額を入力してください。")
TotPmts = InputBox("支払い回数を入力してください。")
PayType = MsgBox("毎月末に支払いを行いますか?", _
vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
APR = (Rate(TotPmts, -Payment, PVal, FVal, PayType, Guess) * 12) * 100
MsgBox "利率は " & Format(CInt(APR), Fmt) & " % です。"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
関数名 | 内容 |
---|---|
DDB | 倍率法による指定した期間の資産原価償却額を算出します。 |
FV | 定額定利の定期支払いでの投資の将来価値を算出します。 |
IPmt | 定額定利の定期支払いで投資期間内の指定した期における金利を算出します。 |
IRR | 指定したキャッシュフローに対する内部利率を算出します。 |
MIRR | 指定したキャッシュフローに対する修正内部利率を算出します。 |
NPer | 定額定利の定期支払いで総額の支払いに必要な支払回数を算出します。 |
NPV | 投資の正味現在価値を算出します。 |
Pmt | 定額定利の定期支払いでの投資の将来価値を算出します。投資に必要な定期支払額を算出します。 |
PPmt | 定額定利の定期支払いでの特定の期間における元金を算出します。 |
PV | 定額定利の定期支払いでの投資の現在価値を算出します。 |
Rate | 定額定利の定期支払いで将来価値を得るための利率を算出します。 |
SLN | 定額法での減価償却費を算出します。 |
SYD | 定額逓減法で指定した期の減価償却費を算出します。 |
↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。