This example uses the FV function to return the future value of an investment given the percentage rate that accrues per period (APR / 12
), the total number of payments (TotPmts
), the payment (Payment
), the current value of the investment (PVal
), and a number that indicates whether the payment is made at the beginning or end of the payment period (PayType
). Note that because Payment
represents cash paid out, it's a negative number.
Dim Fmt, Payment, APR, TotPmts, PayType, PVal, FVal
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' When payments are made.
Fmt = "###,###,##0.00" ' Define money format.
Payment = InputBox("How much do you plan to save each month?")
APR = InputBox("Enter the expected interest annual percentage rate.")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = InputBox("For how many months do you expect to save?")
PayType = MsgBox("Do you make payments at the end of month?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
PVal = InputBox("How much is in this savings account now?")
FVal = FV(APR / 12, TotPmts, -Payment, -PVal, PayType)
MsgBox "Your savings will be worth " & Format(FVal, Fmt) & "."