background image

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. 

 

background image

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