Zastosowanie Informatyki w Finansach i Bankowości II Analiza Wrażliwości przy wykorzystaniu VBA
1. Pierwszy etap polega na utworzeniu prostego modelu opłacalności inwestycji bezpośrednio w arkuszu kalkulacyjnym. Wszelkie obliczenia w sekcji „Projekcje” nie mogą odbywać się bezpośrednio na komórkach, do których będą wprowadzane dane, tylko na komórkach, w których wprowadzona wartość np. przychodów ze sprzedaży będzie skorygowana o komórkę zawierającą współczynnik zmienności o domyślnej wartości 1.
2. Komórki zawierające współczynniki zmienności powinny otrzymać odpowiednie nazwy, np.: zm_p (wsp. dla przychodów), zm_k, zm_n, zm_d, zm_t.
3. Rachunek opłacalności należy sporządzić korzystając wyłącznie z danych zawartych w kolumnach E i F zgodnie ze wzorem poniżej.
4. Należy pamiętać aby komórki zawierające wyniki otrzymały odpowiednie nazwy: npv, irr, npvr, pb.
5. Okres zwrotu jest opcjonalny i można go policzyć tylko dodając moduł zawierający odpowiednią funkcję VBA!
6. Po wykonaniu arkusza z rachunkiem opłacalności można przejść do wykonania arkusza zawierającego tabele z analizą wrażliwości.
7. Po utworzeniu tabeli należy nadać nazwy następującym obszarom (zakresom komórek) w tabeli.
a. C4:K4 – zm
b. C6:K9 – raport_p
c. C12:K15 – raport_k
d. C18:K21 – raport_n
e. C24:K27 – raport_t
f. C30:K33 – raport_d
8. Po nadaniu nazw można przystąpić do tworzenia odpowiednich makr. Należy przejść do edytora VBA i dodać nowy moduł dla makr. Pierwsze makro będzie dotyczyło wrażliwości opłacalności na zmiany przychodów operacyjnych.
Sub Wrazliwosc_Przychodow()
For n = 1 To 9
Range("zm_p").Value = Range("zm").Cells(1, n).Value Range("raport_p").Cells(1, n).Value = Range("npv").Value Range("raport_p").Cells(2, n).Value = Range("irr").Value Range("raport_p").Cells(3, n).Value = Range("npvr").Value Range("raport_p").Cells(4, n).Value = Range("pb").Value Next n
Range("zm_p").Value = 1
End Sub
9. Ponieważ należy ocenić wrażliwość na cztery pozostałe czynniki jakimi są: poziom kosztów, stopy podatku, dyskonto i nakłady, należy utworzyć w analogiczny sposób następujące makra.
a. Wrazliwosc_Kosztow
b. Wrazliwosc_Podatek
c. Wrazliwosc_Naklady
d. Wrazliwosc_Dyskonto
10. Ostatnim etapem jest utworzenie makra uruchamiającego powyższe makra oraz przypisanie go do przycisku w arkuszu z analizą wrażliwości.
Sub Wrazliwosc_Razem()
Wrazliwosc_Przychodow
Wrazliwosc_Kosztow
Wrazliwosc_Dyskonto
Wrazliwosc_Podatek
Wrazliwosc_Naklady
End Sub
11. Opcjonalnie można dodać moduł zawierający następujące makro pozwalające na obliczanie okresu zwrotu oraz wpisanie następującej formuły w odpowiedniej komórce - =payback(C21:M21).
Function Payback(cvec)
Dim csum
Dim i As Integer
If cvec(1) >= 0 Or Application.Sum(cvec) < 0 Then Payback = "Brak zwrotu"
Else
csum = 0
For i = 1 To Application.Count(cvec) csum = csum + cvec(i)
If csum > 0 Then
Exit For
End If
Next i
csum = csum - cvec(i)
Payback = Application.Round(i - 2 - csum / cvec(i), 5) End If
End Function
Funkcja na podstawie: Zaawansowane Modele Finansowe z wykorzystaniem Excela i VBA, M. Jackson i M. Staunton, WileyFinance 2004, Helion