przez:
admin
czytany 25874 razy.
VBA posiada dość spore możliwości, ale czasem zdarza się, że nie wystarczają
one do rozwiązania pewnych problemów.
Przykładem może być obsługa baz danych - w VBA nie ma komend czy metod,
służących do tego. Można jednak wykorzystać bibliotekę dao351.dll, dzięki
której baza danych i jej elementy mogą być reprezentowana w kodzie jako
obiekty.
Przy pomocy VBA można sterować praca innych aplikacji, a nie tylko aplikacji
macierzystej, poprzez wykorzystanie tzw. biblioteki obiektów.
Zawarta jest ona pliku o rozszerzeniu *.tlb lub *.olb. Dołączenie tej
biblioteki udostępnia VBA obiekty, metody i właściwości związane z inna
aplikacja.
Dzięki temu można za pomocą VBA z poziomu Worda uruchamiać Excela, otwierać
pliki, zmieniać zawartość komórek w arkuszu itd. Wszelkie metody i właściwości
Excela są widoczne wówczas z poziomu Worda.
Wykorzystanie dodatkowych funkcji, zawartych w bibliotekach *.dll, czy
sterowania praca innych aplikacji wymaga dodania do projektu VBA odwołania do
biblioteki.
Dodania odwołań dokonujemy poprzez wybranie z menu Tools (Narzędzia) polecenia
References (Odwołania).
Pojawi się wówczas okno dialogowe z listą na której znajdujemy
interesującą nas pozycję i zaznaczamy pole wyboru.
Jeżeli biblioteka nie znajduje się na liście, to wskazujemy lokalizację jej
pliku (przycisk Browse...).
Pamiętać należy także o tym, że niektóre (ale nie wszystkie) biblioteki musza
być zarejestrowane w systemie.
Rejestracji można dokonać przy użyciu programiku regsvr32.exe, znajdującego się
w zależności od wersji systemu operacyjnego w katalogu C:\Windows\System lub
C:\WINNT\System32.
Jego użycie może polega na wpisaniu w linii komend albo w pliku wsadowym *.bat:
regsvr32.exe nazwa_biblioteki
Kiedy już dodamy odwołanie do projektu, można używać metod i obiektów z
dołączonej biblioteki.
Dobrym zwyczajem programistycznym jest deklarowanie zmiennych. Po
zadeklarowaniu zmiennych, reprezentujących np. tabelę bazy danych edytor VBA
"podpowiada" właściwości i metody tego obiektu.
Przykład 1.
Otwieranie bazy danych.
Sub OtworzBaze()
Dim oDB As Database
Dim oRss As Recordset
Set oDB = OpenDatabase("C:\BazaDanych.mdb",
False, False)
Set oRss = oDB.OpenRecordset("Tabela1")
MsgBox oRss!Pole1
oRss.Close
oDB.Close
Set oDB = Nothing
Set oRss = Nothing
End Sub
Przykład 2
Uruchamianie Excela z poziomu VBA.
Sub UruchomExcela()
Dim objExcel As Excel.Application
Dim objWBK As Workbook
'Otwieramy Excela i dodajemy nowy skoroszyt
Set objExcel =
CreateObject("Excel.Application")
Set objWBK = objExcel.Workbooks.Add
objExcel.Visible = True
End Sub
Więcej przykładów znajdziecie w makrach z działów
Excel i AutoCAD.
wstecz