PPmt関数

PPmt関数は、VBA関数の中で財務関数に分類される関数です。

目次

スポンサー リンク

PPmt関数とは

PPmt関数は、倍精度浮動小数点数型 (Double) の値を返します。定額の支払いを定期的に行い、利率が一定であると仮定して指定した期に支払われる元金を返します。

構文PPmt(rate, nper, pv[, fv[, type]])
引数省略説明
rate ×投資期間を通じて一定の利率を示す倍精度浮動小数点数型 (Double) の値を指定します。たとえば、年率 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。
per ×元金支払額を求める期を示す整数型 (Integer) の値を 1 ~ nper の範囲で指定します。
nper ×投資期間全体での支払い回数の合計を示す整数型の値を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。
pv ×現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を示す倍精度浮動小数点数型 (Double) の値を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。
fv 現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を示す倍精度浮動小数点数型 (Double) の値を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。
type 支払期日をバリアント型 (Variant) で指定します。各期の期末に支払う場合は 0、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したものとみなされます。

投資とは、一連の定額の支払いを一定の期間行うことです。たとえば、住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。
名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、名前付き引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。
出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。

PPmt関数のサンプルコード

次の例は、PPmt 関数を使って、毎月の支払いが同額である場合の特定の期間における元金を計算します。利率 (APR / 12)、支払い元金を求める期 (Period)、支払い回数 (TotPmts)、現在価値または元金 (PVall)、将来価値 (FVal)、支払い期日 (PayType) を指定します。


Sub sample()

Dim NL, TB, Fmt, FVal, PVal, APR, TotPmts, PayType, Payment, Msg, MakeChart, Period, P, I
Const ENDPERIOD = 0, BEGINPERIOD = 1        ' 支払い期日を指定します。
NL = Chr(13) & Chr(10)                ' 改行します。
TB = Chr(9)    ' タブを設定します。
Fmt = "###,###,##0.00"                ' 金額の形式を定義します。
FVal = 0                                ' 通常、ローンの場合は 0 を指定します。
PVal = InputBox("借入金額を入力してください。")
APR = InputBox("ローンの年利率 (%) を入力してください。")
If APR > 1 Then APR = APR / 100            ' 正しい形式に変換します。
TotPmts = InputBox("支払い回数を入力してください。")
PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "毎月の支払い額は " & Format(Payment, Fmt) & " です。"
Msg = Msg & "元金と利息の"
Msg = Msg & "内訳を計算しますか?"
MakeChart = MsgBox(Msg, vbYesNo)            ' チャートを表示するかどうかを指定します。
If MakeChart <> vbNo Then
    If TotPmts > 12 Then MsgBox "最初の年だけを表示します。"
    Msg = "元金と利息の内訳 (支払金額:元金:利息)" & NL
    For Period = 1 To TotPmts
        If Period > 12 Then Exit For        ' 最初の 12 回分だけを表示します。
        P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
        P = (Int((P + .005) * 100) / 100)    ' 元金の値を丸めます。
        I = Payment - P
        I = (Int((I + .005) * 100) / 100)    ' 利息の値を丸めます。
        Msg = Msg & Period & TB & Format(Payment, Fmt)
        Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
    Next Period
    MsgBox Msg                            ' 表が表示されます。

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

解説

財務関数一覧

関数名内容
DDB倍率法による指定した期間の資産原価償却額を算出します。
FV定額定利の定期支払いでの投資の将来価値を算出します。
IPmt定額定利の定期支払いで投資期間内の指定した期における金利を算出します。
IRR指定したキャッシュフローに対する内部利率を算出します。
MIRR指定したキャッシュフローに対する修正内部利率を算出します。
NPer定額定利の定期支払いで総額の支払いに必要な支払回数を算出します。
NPV投資の正味現在価値を算出します。
Pmt定額定利の定期支払いでの投資の将来価値を算出します。投資に必要な定期支払額を算出します。
PPmt定額定利の定期支払いでの特定の期間における元金を算出します。
PV定額定利の定期支払いでの投資の現在価値を算出します。
Rate定額定利の定期支払いで将来価値を得るための利率を算出します。
SLN定額法での減価償却費を算出します。
SYD定額逓減法で指定した期の減価償却費を算出します。
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。

VBAのIE操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。

目次

VBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。