VBA IPMT Function (Syntax + Example)

Last Updated: June 22, 2023

- Written by Puneet

The VBA IPMT function is listed under the financial category of VBA functions. When you use it in a VBA code, it calculates the interest of the payment, during a specific period for a loan or investment that is paid by constant periodic payments and using a constant interest rate.


IPmt(Rate, Per, Nper, Pv, [Fv], [Due])


  • Rate: The rate of interest for the period.
  • Per: The number of the periods for which you want to calculate the interest [It must be within 1 to Nper].
  • Nper: The number of periods over which the loan or investment is to be paid.
  • PV: The present value of investment or loan.
  • [FV]: The future value of the loan/investment [This is an optional argument and if omitted VBA takes 0 by default].
  • [Due]: Defines whether the payment is due at the start or the end of the period [This is an optional argument and if omitted VBA takes the end of the period by default].
    • Use 0 for the end of the period and 1 for the start of the period


To practically understand how to use the VBA IPMT function, you need to go through the below example where we have written a vba code by using it:

Sub example_IPMT()
Range("A10") = IPmt(0.08 / 12, 1, 5 * 12, 60000)
End Sub

In the above code, we used the IPMT to get the interest amount from the payment of the first month and it returned -400 in the result when we used the 2 to get the interest from the second month it returned -394.56.



  • While using IPMT any cash paid out is represented by a negative number and any cash received is represented by a positive number.
  • If we supply Per which is 0 > or > NPer then VBA will return a run-time 5 error.