Contenido
En VBA (Visual Basic for Applications), la función NPV (Net Present Value o Valor Presente Neto) se utiliza para calcular el valor presente neto de una serie de flujos de efectivo que se producen en varios períodos. La función NPV considera tanto los ingresos como los egresos de efectivo y es útil para evaluar la rentabilidad de proyectos de inversión.
Ejemplo de cómo usar la función NPV en VBA
Sub CalcularNPV()
' Tasa de descuento
Dim tasaDescuento As Double
tasaDescuento = 0.1 ' 10%
' Flujos de efectivo (positivos para ingresos, negativos para egresos)
Dim flujosEfectivo() As Variant
flujosEfectivo = Array(-10000, 3000, 4200, 6800) ' Ejemplo de inversión inicial y flujos de los siguientes períodos
' Calcular el Valor Presente Neto
Dim npv As Double
npv = Application.WorksheetFunction.NPV(tasaDescuento, flujosEfectivo)
' Añadir la inversión inicial al resultado obtenido
npv = npv + flujosEfectivo(0)
' Mostrar el resultado
MsgBox "El Valor Presente Neto (NPV) es: " & npv
End Sub
En el ejemplo anterior, se crea una macro llamada CalcularNPV la cual define una tasa de descuento del 10% y un array de flujos de efectivo. La función Application.WorksheetFunction.NPV se utiliza para calcular el valor presente neto basado en la tasa de descuento y el array que contiene los flujos de efectivo. Importante notar que el valor inicial de la inversión (primer elemento del array) no se debería incluir en la función NPV y será restado manualmente después, ya que la función NPV asume que todos los flujos están en futuros periodos.
Es fundamental tener en cuenta que la función NPV en VBA toma los flujos de dinero después del primer período, el cual se excluye ya que se considera al tiempo cero. Por lo tanto, el primer flujo de efectivo (el desembolso inicial en la inversión), debe restarse después de calcular el NPV con los flujos futuros.
Finalmente, la variable npv contiene el valor presente neto, y luego se muestra este resultado al usuario mediante un cuadro de mensaje (MsgBox).