PPmt Function [VBA]

Returns for a given period the payment on the principal for an investment that is based on periodic and constant payments and a constant interest rate.

แƒ’แƒแƒ•แƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒขแƒฃแƒšแƒ

This function or constant is enabled with the statement Option VBASupport 1 placed before the executable program code in a module.


Pmt( Rate as Double, Per as Double, NPer as Double, PV as Double, [FV as Variant], [Due as Variant] )

Return value:



Rate is the periodic interest rate.

Per The period number for which you want to calculate the principal payment (must be an integer between 1 and Nper).

NPer is the total number of periods, during which annuity is paid.

PV is the (present) cash value of an investment.

FV (optional) is the future value of the loan / investment.

Due (optional) defines whether the payment is due at the beginning or the end of a period.

0 - the payment is due at the end of the period;

1 - the payment is due at the beginning of the period.

Error codes:

D'oh! You found a bug (text/sbasic/shared/00000003.xhp#err5 not found).


REM ***** BASIC *****

Option VBASupport 1

Sub ExamplePPmt

' Calculate the principal payments during months 4 & 5, for a loan that is to be paid in full

' over 6 years. Interest is 10% per year and payments are made at the end of the month.

Dim ppMth4 As Double

Dim ppMth5 As Double

' Principal payment during month 4:

ppMth4 = PPmt( 0.1/12, 4, 72, 100000 )

print ppMth4 ' ppMth4 is calculated to be -1044,94463903636.

' Principal payment during month 5:

ppMth5 = PPmt( 0.1/12, 5, 72, 100000 )

print ppMth5' ppMth5 is calculated to be -1053,65251102833.

End Sub