Opis funkcji matematycznych w Excel VBA
Poniżej przedstawiam nazwy oraz opisy wszystkich standardowych funkcji matematycznych w Excel VBA. Jak widzisz funkcje takie jak RND() nie wymagają wprowadzenia argumentów. Funkcje takie jak ROUND() wymagają 2 argumentów – wartości oraz liczby miejsc po przecinku do której zaokrąglimy naszą wartość. Liczby z miejscami dziesiętnymi w VBA wprowadzamy z użyciem
kropki”.”, a nie przecinka, tak jak to się odbywa w arkuszu Excela.
Funkcja | Opis |
ABS() | Zwraca wartość bezwzględną liczby |
EXP() | Funkcja zwraca wartość wykładniczą. Dla przykładu EXP(1) zwróci nam liczbę Eulera ~2,71828182845905 |
FIX() | Zwraca wynik w formie liczby całkowitej. W przypadku liczb ujemnych zaokrągla do góry. |
INT() | Jak FIX() zwraca wynik w formie liczby całkowitej. W przypadku liczb ujemnych zaokrągla do dołu. |
LOG() | Zwraca logarytm z argumentu |
RND() | Zwraca liczbę losową z zakresu <0;1> |
ROUND() | Zaokrągla liczbę do x miejsc po przecinku |
SQR() | Pierwiastek z argumentu |
SGN() | Zwraca znak liczby, a więc 1, -1, bądź 0 |
SIN() | Funkcja trygonometryczna sinus |
COS() | Funkcja trygonometryczna cosinus |
TAN() | Funkcja trygonometryczna tangens |
ATN() | Funkcja trygonometryczna arcustangens |
Funkcje matematyczne VBA – przykład wykorzystania
Czas na przetestowanie naszych funkcji. Stwórzmy prosty program, wprowadzający do komórek naszego arkusza wyniki wszystkich funkcji matematycznych.
Sub FunExample() Range("A1").Value = Abs(-1.651) Range("A2").Value = Exp(1) Range("A3").Value = Fix(4.98) Range("A4").Value = Int(4.84) Range("A5").Value = Log(4) Range("A6").Value = Rnd(123.123) Range("A7").Value = Round(123.123, 1) Range("A8").Value = Sqr(4) Range("A9").Value = Sgn(-123) End Sub
Poniżej wykorzystanie funkcji trygonometrycznych:
Sub FunExample() Range("A10").Value = Sin(0) Range("A11").Value = Cos(0) Range("A12").Value = Tan(0) Range("A13").Value = Atn(1) End Sub
Jeśli funkcje matematyczne VBA chciałbyś zastosować w połączeniu z funkcjami arkusza, zapraszam do kolejnych części naszego szkolenia VBA. Dowiesz się jak korzystając z VBA wywołać dowolną funkcję matematyczną z arkusza Excel.
Zadania (Rozwiązanie możesz wpisać w komentarzu)
3.1 Zamień liczbę 33,445 na liczbę całkowitą. Spróbuj użyć w tym celu trzech różnych funkcji.
3.2 Dla liczby -21 wykonaj następujące działania w kodzie VBA, które wyświetlisz w formie okna MsgBox: obliczenie wartości bezwzględnej, pierwiastkowanie, oraz zaokrąglenie do 3 miejsc po przecinku. Na koniec pomnóż liczbę przez 5.
3.3 Dla ambitnych: Mając do dyspozycji funkcję tangens, oblicz funkcję cotangens z π/4.
6 komentarzy “Funkcje matematyczne w Excel VBA”
W jaki sposób mogę odnieść się do funkcji ZAOKR.GÓRA() przez VBA ?
Najszybciej w ten sposób:
Application.WorksheetFunction.RoundUp()
🙂
Sub Functions3_1()
Dim number As Long
number = 33.445
Range(„A1”).Value = Fix(number)
Range(„A2”).Value = Int(number)
Range(„A3”).Value = Round(number, 0)
End Sub
Sub Functions3_2()
Dim number As Long
number = -21
MsgBox (Round(Sqr(Abs(number))) * 5)
End Sub
Sub zadanie_domowe()
Range(„A1”) = 1 / Tan(Application.WorksheetFunction.Pi() / 4)
End Sub
Sub zadanie_13()
Dim liczba As Double
liczba = 33.445
Cells(1, 5).Value = Fix(liczba)
Cells(2, 5).Value = Int(liczba)
Cells(3, 5).Value = Round(liczba, 0)
End Sub
Sub zadanie_13_2()
Dim liczba As Integer
liczba = -21
MsgBox (Abs(liczba) & vbCrLf & Sqr(Abs(liczba)) & vbCrLf & Round(Sqr(Abs(liczba)), 3) & vbCrLf & Round(Sqr(Abs(liczba)), 3) * 5)
End Sub
Zadanie 3.1
Option Explicit
Sub FunkcjeMatematyczne3()
Range(„C1”) = Round(33.445, 0)
Range(„C2”) = Fix(33.445)
Range(„C3”) = Int(33.445)
End Sub
Zadanie 3.2
Option Explicit
Sub FunkcteMatematyczne4()
Dim sinDzialanie1 As Single
Dim sinDzialanie2 As Single
Dim sinDzialanie3 As Single
Dim sinDzialanie4 As Single
sinDzialanie1 = MsgBox(Abs(-21))
sinDzialanie2 = MsgBox(Sqr(sinDzialanie1))
sinDzialanie3 = MsgBox(Round(sinDzialanie2, 3))
sinDzialanie4 = MsgBox(sinDzialanie3 * 5)
End Sub
Zadanie 3.3