# 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 constant, function or object is enabled with the statement Option VBASupport 1 placed before the executable program code in a module.

### Syntax:

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

Double

### Parameters:

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:

5 Invalid procedure call

### Example:

``````
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
``````