Spis przykładów o VBA
01.
17.10.2017
• Co wybrać ? Pakiet Microsoft Office 2010+ w wersji 32 bitowej, czy 64 bitowej •
Jeżeli zdecydujemy się na korzystanie z 64 bitowej wersji Microsoft Office, to musimy się liczyć z konsekwencjami migracji
na nowy system, w którym nie będą prawidłowo funkcjonowały biblioteka formantów ActiveX ComCtl
, formanty ActiveX
,
dodatki COM
oraz biblioteki DLL
w wersji 32 bitowej, skompilowane bazy danych programu Access
w postaci plików MDE
oraz ACCDE
oraz Visual Basic for Applications zawierające
instrukcję Declare funkcji API 32 bitowych ....
02.
21.10.2017
• Edytor kodu VBA, okno Immediate, Option Explicit - jawne deklarowanie zmiennych •
Aby stosować jawną deklarację zmiennych w edytorze VBA, należy wybrać polecenie „Tools/Options”.
W oknie „Options”, na zakładce „Editor” zaznaczmy pole wyboru
Require Variable Declaration
. Spowoduje to automatyczne wstawianie dyrektywy Option Explicit
we wszystkich nowo tworzonych modułach VBA aplikacji Accessa i wymusi jawne deklarowanie zmiennych.
We wcześniej utworzonych modułach, należy ręcznie wpisać w sekcji deklaracji modułu dyrektywę Option Explicit ....
03.
31.10.2017
• Zmienne i ich typy. Zasady nadawania nazw zmiennym, procedurom, stałym ... •
Zmienna to fragment pamięci programu, który ma nazwę i jest przeznaczony do przechowywania danych. Zmienną można wykorzystać do przechowywania wyniku obliczeń, albo za jej pomocą udostępnić wartość zmiennej innej procedurze w celu dalszego przetwarzania. Do zmiennej (obszaru pamięci) odwołujemy się za pomocą nazwy zmiennej. Zmienną deklarujemy za pomocą instrukcji Dim ....
04.
04.11.2017
• Deklarowanie zmiennych. Instrukcje Option Explicit, Dim, Public, Private ... •
Instrukcje deklaracji służą do nadawania nazw i definiowania procedur, funkcji, zmiennych, tablic i stałych
Do deklarowania zmiennej zazwyczaj stosowana jest instrukcja Dim. Instrukcja deklaracji może być umieszczona wewnątrz procedury wówczas
zostanie utworzona zmienna na poziomie procedury. Jeżeli natomiast deklaracja zostanie umieszczona na początku modułu,
w sekcji deklaracji, utworzona będzie zmienna na poziomie modułu ....
05.
15.11.2017
• Zasięg i widzialność zmiennej •
Zasięg odnosi się do dostępności zmiennych, stałych lub procedur dla innej procedury. Występują trzy poziomy zasięgów:
poziom procedury, prywatny poziom modułu, publiczny poziom modułu.
Zmienne i stałe na poziomie modułu można definiować w sekcji deklaracji modułu. Zmienne na poziomie modułu mogą być publiczne lub prywatne ....
06.
19.11.2017
Czas, w którym zmienna
zachowuje swoją wartość, jest nazywany jej cyklem życia. Wartość zmiennej może zmienić się
podczas jej cyklu życia, ale w dalszym ciągu zmienna przechowuje pewną wartość. Kiedy wykonanie programu opuszcza zakres
zmiennej,
traci ona swoją wartość. W chwili rozpoczęcia procedury
wszystkie zmienne są inicjowane. Zmienna numeryczna jest inicjowana wartością zero,
ciąg znaków zmiennej długości przyjmuje wartość ciągu długości zerowej (""
) ....
07.
28.01.2019
• PtrSafe - deklarowania funkcji z bibliotek DLL w 64-bitowym VBA 7 •
W 64 bitowym środowisku VBA7 za każdą instrukcją Declare tworzącą odwołanie do zewnętrznej procedury w bibliotece dołączanej dynamicznie (DLL) należy umieścić atrybut (kwalifikator, słowo kluczowe) PtrSafe i zmienić 32 bitowe odwołania do wskaźników i uchwytów na zgodne z typem LongPtr, a 64-bitowym argumentom przypisać nowy typ danych LongLong ....
08.
28.01.2019
• LngPtr - odwołania do wskaźników i uchwytów w VBA 7 •
W 32 bitowym środowisku wszystkie uchwyty okien są liczbą typu Long, a w środowisku 64 bitowym liczbą typu LongLong. W środowisku VBA 7 uniwersalną deklarację uchwytu umożliwia, stworzona w tym celu, nowa liczba typu LongPtr. Przyjmuje ona w 32 bitowym środowisku typ Long (liczba 4 bajtowa), a w 64 bitowej wersji typ LongLong (8 bajtowa liczba). Taki sposób deklaracji umożliwia pisanie przenośnego kodu, który może działać zarówno w 32 jak i 64 bitowym środowisku ....
MS Access
01.
28.01.2019
• Czy tablica jest zainicjowana i ile ma wymiarów? Funkcja vbaIsArrayAllocated(...) •
Operując na tablicach, nigdy nie wiemy, czy przekazywana lub zwracana przez funkcję (procedurę) tablica jest zainicjowana, a jeżeli jest zainicjowana, to ile ma wymiarów. Bez sprawdzania stanu tablicy, próba pobrania elementu tablicy, lRet = MojaTablica(0) lub próba pobrania dolnego (bądź górnego) indeksu tablicy LBound(MojaTablica) może zakończyć się błędem nr 9 „Indeks poza zakresem” (Subscript out of range). By uniknąć takiego błędu musimy napisać funkcję, która ....
02.
09.02.2019
• Jaki jest numer wersji MS Access? Funkcja vbaVersionAccess(...) •
Gdy uruchamiamy funkcje, procedury w których pobieramy właściwości obiektów, czy też do nich się odwołujemy, musimy być pewni, że używana wersja MS Access obsługuje te obiekty. Błędne wywołanie funkcji bądź metody może skutkować pojawieniem się niezrozumiałego dla użytkownika komunikatu, a w najgorszym przypadku zakończeniem działania naszej Aplikacji. Funkcja vbaVersionAccess(...) sprawdza która ....