Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Const

Termin Definicja
Const

Const to słowo kluczowe VBA służące do zdefiniowania stałej wartości niezmiennej podczas wykonywania makra.

Stała Const w języku VBA i jej miejsce w makrze

Const jest słowem kluczowym języka VBA używanym do nadania nazwanej wartości, która nie powinna zmieniać się podczas wykonywania procedury lub całego modułu. Przykładowa deklaracja Const MaksymalnaLiczbaProb As Long = 3 tworzy stałą typu Long. W dalszej części kodu można odwoływać się do nazwy MaksymalnaLiczbaProb zamiast wielokrotnie wpisywać liczbę 3. Dzięki temu znaczenie wartości jest widoczne w kodzie, a jej zmiana wymaga modyfikacji tylko deklaracji.

Stała nie jest zmienną. Po zadeklarowaniu nie można przypisać jej nowej wartości instrukcją przypisania, dlatego zapis MaksymalnaLiczbaProb = 5 powoduje błąd kompilacji. Deklaracja stałej zawiera nazwę, opcjonalny typ oraz wyrażenie określające wartość początkową. W typowych makrach VBA jako stałe zapisuje się między innymi liczby, teksty, wartości logiczne oraz daty. Nazwy stałych powinny jednoznacznie wskazywać ich przeznaczenie, ponieważ sama wartość liczbowa często nie wyjaśnia, dlaczego występuje w danym fragmencie procedury.

Składnia deklaracji i zakres widoczności Const

Stałą lokalną dla jednej procedury deklaruje się wewnątrz procedury, na przykład Const Limit As Long = 100. Taka nazwa jest dostępna tylko w tej procedurze. Jeżeli stała zostanie umieszczona w sekcji deklaracji standardowego modułu, może być używana przez wiele procedur tego modułu. Modyfikatory Private i Public określają dostępność stałej na poziomie modułu. Private Const ogranicza użycie do danego modułu, natomiast Public Const pozwala odwoływać się do niej także z innych modułów projektu VBA.

W deklaracji warto podać typ, gdy wartość ma określony charakter lub gdy kod wykonuje obliczenia zależne od typu danych. Dla większych liczb całkowitych często stosuje się Long, dla tekstu String, a dla wartości prawda/fałsz Boolean. Przykłady to Const NazwaPliku As String = "raport.txt" oraz Const CzyAktywny As Boolean = True. Tekst w stałej zapisuje się w cudzysłowie, a wewnętrzny cudzysłów reprezentuje się w VBA przez dwa kolejne znaki cudzysłowu.

W jednym projekcie można mieć stałe o takich samych nazwach tylko wtedy, gdy ich zakresy nie powodują konfliktu. Jeżeli procedura lokalna ma nazwę identyczną ze stałą modułową, odwołanie w tej procedurze może wskazywać nazwę lokalną zgodnie z zasadami zakresu VBA. Z tego powodu praktycznym rozwiązaniem jest stosowanie opisowych, konsekwentnych nazw oraz unikanie nazw kolidujących z nazwami zmiennych, procedur i właściwości obiektów.

Wartości stałe, typy danych i ograniczenia kompilacji

Wartość przypisywana po = musi być możliwa do ustalenia podczas kompilacji deklaracji. Poprawne są literały, takie jak 10, "tekst", True lub data zapisana składnią VBA, a także wyrażenia złożone z innych stałych i operatorów. Nie można natomiast definiować zwykłej stałej na podstawie wartości zmiennej, wyniku funkcji odczytującej bieżący czas ani właściwości obiektu. Zapis Const DataUruchomienia As Date = Now nie jest prawidłowym sposobem przechowywania czasu wykonania, ponieważ Now zwraca wartość dopiero podczas działania programu.

Const nie służy do tworzenia stałych obiektowych, tablic ani struktur, których zawartość ma być ustalana dynamicznie. Jeżeli makro potrzebuje tablicy, obiektu Workbook, Worksheet albo wartości zależnej od arkusza, należy użyć zmiennej i odpowiedniego przypisania. Stała może jednak przechowywać tekst wykorzystywany później jako nazwa arkusza, rozszerzenie pliku lub fragment komunikatu. Trzeba wtedy pamiętać, że niezmienność dotyczy wartości zapisanej w kodzie, a nie danych, do których ten tekst może prowadzić.

Stała może mieć typ wynikający z deklaracji albo z wartości, ale jawne wskazanie typu ogranicza niejednoznaczności przy porównaniach i działaniach arytmetycznych. Ma to znaczenie zwłaszcza wtedy, gdy stała jest przekazywana do procedury oczekującej konkretnego typu albo używana w warunku sterującym. Warto odróżniać zwykłe stałe deklarowane przez Const od dyrektyw kompilacji, takich jak #Const. #Const definiuje symbol używany przez warunkową kompilację i jest wykorzystywany w konstrukcjach #If, dlatego nie zastępuje zwykłej stałej przechowującej wartość używaną przez działające makro.

Porządkowanie makr VBA z użyciem nazwanych stałych

Najbardziej użyteczne zastosowanie Const pojawia się wtedy, gdy ta sama wartość występuje w kilku miejscach procedury. Zamiast powtarzać nieopisany numer kolumny, limit prób, interwał czasowy lub nazwę pliku, można nadać tej wartości znaczącą nazwę. Przykładowo Const KolumnaStatusu As Long = 4 wyjaśnia intencję lepiej niż wielokrotne użycie samej liczby 4. Jeżeli układ arkusza ulegnie zmianie, aktualizuje się deklarację, a nie każdy warunek i odwołanie osobno.

Stałe pomagają także ograniczyć błędy wynikające z literówek i niespójnych wartości. W procedurze obsługującej dane można zdefiniować osobne stałe dla dozwolonego statusu, minimalnej długości identyfikatora oraz nazwy arkusza, a następnie wykorzystać je w warunkach, pętlach i komunikatach. Nie należy jednak zamieniać każdej pojedynczej wartości na stałą bez uzasadnienia. Nazwana stała jest przydatna wtedy, gdy wartość ma znaczenie biznesowo-techniczne, powtarza się albo może wymagać późniejszej zmiany.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a w ramach diagnostyki oprogramowania można sprawdzić również błędy kompilacji makr VBA związane z deklaracjami Const, zakresem nazw, niezgodnością typów oraz użyciem wartości ustalanych dopiero w czasie działania programu.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę