1. Czym są stałe VBA?
W poprzednim rozdziale szkolenia dowiedziałeś się czym są zmienne występujące w naszym kodzie VBA. Różnica pomiędzy zmiennymi a stałymi VBA jest taka, że wartości przypisane do stałych nie będą się zmieniać w trakcie uruchamiania naszego programu. Jeśli chcemy, by nasz kod był w pełni zgodny z zasadami dobrego programowania i tworzył zwartą, spójną całość, to dla stałych wprowadzanych do kodu powinniśmy wykorzystać osobny typ deklaracji. Stosujemy w tym celu definicję Const. Wartość dla stałej musimy przypisać od razu po jej zadeklarowaniu. Nie będzie możliwości jej zmiany w kolejnych blokach kodu. Poniżej przedstawiam przykład zadeklarowania liczby Pi oraz liczby Eulera jako stałych VBA. Co ważne, typ danych został określony. Nie jest on jednak wymagany przy deklarowaniu stałych VBA.
Sub ConstDef() Const dubPi As Double = 3.14 Const dubEuler As Double = 2.72 MsgBox (dubPi) MsgBox (dubEuler) End Sub
2. Przykład z wykorzystaniem stałych
Stwórzmy krótki program, który po wprowadzeniu promienia koła obliczy nam jego pole. Zastosujmy w tym celu okna InputBox i MsgBox.
Sub ConstExample() Const dblPi As Double = 3.14 Dim dblRadius As Double dblRadius = InputBox("Wprowadź promień koła: ") MsgBox dblPi * dblRadius ^ 2 End Sub
W powyższym przykładzie wprowadziliśmy do kodu VBA liczbę PI przypisując jej stałą wartość 3,14. Liczbę tą możemy także wprowadzić do programu przy pomocy funkcji arkusza Excel. By to zrobić, korzystamy z polecenia Application.WorksheetFunction.NAZWA_FUNKCJI umożliwiającej nam wykorzystanie funkcji arkuszowych. Samo działanie musimy wykonać w tym przypadku z pominięciem stałych.
Sub ConstExample1() Dim dblPi As Double Dim dblRadius As Double dblPi = Application.WorksheetFunction.Pi() dblRadius = InputBox("Wprowadź promień koła: ") MsgBox dblPi * dblRadius ^ 2 End Sub
3. Zadania (Rozwiązanie możesz wpisać w komentarzu)
3.1. Wykorzystując polecenie Range lub Cells zmodyfikuj przykład i oblicz pole koła pobierając wartość promienia z komórek arkusza. Sam wynik także powinien pojawić się w arkuszu.
3.2 Wykorzystując stałe stwórz program w oparciu o okna InputBox i MsgBox i oblicz obwód koła o promieniu 10. Dla przypomnienia wzór na obwód Ob. = 2 * Pi * R
6 komentarzy “Stałe w Excel VBA”
W jakim konkretnym przypadku powinniśmy korzystać ze stałych?
Zadanie 3.1.
Option Explicit
Sub constExample_3_1()
Const dblPi As String = 3.14
Dim dblRadius As Double
dblRadius = Range(„B1”)
Range(„B2”) = dblPi * dblRadius ^ 2
End Sub
Zadanie 3.2
Sub constExample_3_2()
Const dbPi As Double = 3.14
Dim dbR As Double
dbR = InputBox(„Wprowadź promień koła”)
MsgBox („Obwód koła wynosi: ” & 2 * dbPi * dbR)
End Sub
Fajny kurs, wszystko jasno wytłumaczone. Przykłady do samodzielnego rozwiązania pozwalają przećwiczyć zdobytą wiedzę.
Dzięki 🙂
T.
3.1
Sub const_example()
Const dbpi As Double = 3.14
Dim dbr As Double
dbr = Range(„A1”)
Range(„B1”) = dbpi * dbr ^ 2
End Sub
3.2
Sub obwodkola()
Const dbpi As String = 3.14
Dim dbr As Double
Dim tekst As String
tekst = InputBox(„Podaj promień koła: „)
MsgBox „obwód koła wynosi ” & (2 * dbpi * tekst)
End Sub
Sub ConstExample3()
Const dblPi As Double = 3.14
Dim dblRadius As Double
Range(„A1”) = 12
dblRadius = Range(„A1”)
Range(„B1”) = dblRadius * dblPi ^ 2
End Sub