W tym artykule dowiesz się, jak korzystać z metody Create Object w VBA.
VBA jest językiem zorientowanym obiektowo - wykorzystuje procedury do kontroli i tworzenia obiektów.
Utwórz obiekt
Możemy użyć metody Create Object, aby utworzyć obiekt w aplikacji Microsoft Office. Na przykład, jeśli piszemy kod VBA w programie Excel i chcemy otworzyć kopię programu Word, możemy użyć metody Utwórz obiekt, aby utworzyć nowe wystąpienie programu Word.
Na przykład:
12345 | Sub UtwórzWordInstance()Przyciemnij wdApp jako obiektUstaw wdApp = CreateObject("Word.Application")wdApp.Visible = PrawdaNapis końcowy |
Podobnie możemy utworzyć nową instancję programu PowerPoint lub Access.
12345 | Sub Utwórz aplikację PowerPointPrzyciemnij ppApp jako obiektUstaw ppApp = CreateObject("PowerPoint.Application")ppApp.Visible = PrawdaNapis końcowy |
Możemy również użyć Create Object do tworzenia obiektów innych niż Application Object. Możemy go użyć na przykład do stworzenia arkusza Excel.
1234567 | Sub Utwórz arkusz Excela()Dim xlSheet jako obiektUstaw xlSheet = CreateObject("Excel.Arkusz")xlSheet.Application.Visible = PrawdaxlSheet.Application.Range("A2") = "Dzień dobry"Ustaw xlArkusz = NicNapis końcowy |
Jednak w rzeczywistości tworzy to nowe wystąpienie programu Excel - nie tworzy arkusza w wystąpieniu, które jest już otwarte. Z tego powodu musimy ustawić Application nowego arkusza (czyli: nowa instancja Excela) na Visible, aby zobaczyć obiekt.
We wszystkich powyższych przykładach używamy późnego wiązania - dlatego deklarujemy zmienne jako obiekty. Możemy również użyć Early Binding, ustawiając odwołanie do Worda lub PowerPointa w naszym projekcie VBA, a następnie pisząc procedurę podrzędną, jak pokazano poniżej. Aby dowiedzieć się więcej o późnym i wczesnym wiązaniu, kliknij tutaj.
Po pierwsze, dla Early Binding, w VBE, ustawiamy odniesienie do Microsoft Word.
w Menu pasek, wybierz Narzędzia > Referencje i przewiń w dół, aby znaleźć odniesienie do Biblioteka obiektów Microsoft Word 16.0.
Upewnij się, że odniesienie jest zaznaczone, a następnie kliknij OK.
UWAGA: wersja może nie być 16.0, wszystko zależy od wersji pakietu Microsoft Office, z której korzystasz na swoim komputerze!
Teraz deklarujemy Object używając Early Binding - oznacza to, że zamiast deklarować wdApp jako Object, deklarujemy go jako Słowo.Aplikacja. Reszta kodu jest taka sama, jak w przypadku użycia późnego wiązania powyżej.
12345 | Sub UtwórzWordInstance()Dim wdApp jako nowy Word.ApplicationUstaw wdApp = CreateObject("Word.Application")wdApp.Visible = PrawdaNapis końcowy |