CreateObject w VBA - Jak korzystać z funkcji CreateObject w VBA?

Funkcja CreateObject w VBA

Obiekty to bardzo ważne pojęcia w kodowaniu VBA i zrozumienie, że model pracy obiektu jest dość złożony. Kiedy odwołujemy się do obiektów w kodowaniu VBA, robimy to na dwa sposoby, tj. „Wczesne wiązanie” i „Późne wiązanie”. „Wczesne wiązanie” to proces ustawiania odniesienia do obiektu z biblioteki referencji VBA, a kiedy wysyłamy plik do kogoś innego, wymaga on również ustawienia odniesienia do tych odpowiednich obiektów. Jednak „późne wiązanie” nie wymaga od użytkownika ustawiania żadnych odniesień do obiektów, ponieważ w kodowaniu późnego wiązania ustawiamy odniesienie do odpowiedniego obiektu za pomocą funkcji „CreateObject” języka VBA.

Co to jest CreateObject w Excel VBA?

„Utwórz obiekt”, jak sama nazwa mówi, utworzy wspomniany obiekt z Excel VBA. Zatem funkcja Create Object zwraca odwołanie do obiektu zainicjowanego przez składnik Active X.

Poniżej znajduje się składnia funkcji CreateObject w języku VBA

  • Klasa: nazwa obiektu, który próbujemy zainicjować i ustawić odniesienie do zmiennej.
  • (Nazwa serwera): jest to parametr opcjonalny; jeśli zostanie zignorowany, użyje tylko komputera lokalnego.

Przykład funkcji tworzenia obiektu w Excel VBA

Poniżej znajdują się przykłady VBA CreateObject.

Przykład 1

Teraz zobaczymy, jak zainicjować aplikację PowerPoint z programu Excel za pomocą funkcji CreateObject w VBA. Otwórz plik Excela i przejdź do okna Edytora Visual Basic, naciskając klawisz ALT + F11 .

Kod:

Sub CreateObject_Example1 () End Sub

Zadeklaruj zmienną jako PowerPoint.Application.

Jak widać powyżej, kiedy zaczynamy wpisywać słowo „PowerPoint”, nie widzimy żadnej listy IntelliSense pokazującej podobne wyszukiwania. Dzieje się tak, ponieważ „PowerPoint” jest obiektem zewnętrznym. Ale nie martw się, zadeklaruj zmienną jako „Obiekt”.

Kod:

Sub CreateObject_Example1 () Dim PPT As Object End Sub

Ponieważ zadeklarowaliśmy zmienną jako „Object”, musimy ustawić odniesienie do obiektu za pomocą słowa kluczowego „Set”. Wpisując słowo kluczowe „Set”, wspomnij o zmiennej i umieść znak równości.

Kod:

Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub

Teraz otwórz funkcję CreateObject.

Ponieważ odwołujemy się do zewnętrznego obiektu programu „PowerPoint” dla parametru „Klasa” funkcji Utwórz obiekt, należy podać nazwę obiektu zewnętrznego w podwójnych cudzysłowach jako „PowerPoint.Application”.

Kod:

Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub

Teraz funkcja Utwórz obiekt uruchomi aplikację PowerPoint. Po zainicjowaniu obiektu musimy uczynić go widocznym za pomocą nazwy zmiennej.

Jednym z problemów związanych z metodą Create Object lub metodą późnego wiązania jest to, że w danym momencie nie widzimy listy IntelliSense. Musisz mieć absolutną pewność co do kodu, który piszesz.

W przypadku zmiennej „PPT” użyj właściwości „Visible” i ustaw stan na „True”.

Kod:

Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub

Aby dodać slajd do PPT, zdefiniuj poniższy kod VBA.

Kod:

Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub

Teraz wykonaj kod ręcznie lub za pomocą klawisza F5 i zobacz, jak otwiera się aplikacja „PowerPoint”.

Po włączeniu aplikacji PowerPoint za pomocą zmiennej „PPT” możemy zacząć uzyskiwać dostęp do aplikacji PowerPoint.

Przykład nr 2

Teraz zobaczymy, jak zainicjować aplikację Excel za pomocą funkcji CreateObject w VBA. Ponownie zadeklaruj zmienną jako „Obiekt”.

Kod:

Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub

The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.

Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.

Code:

Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub

Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.

Code:

Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub

Now it will activate the excel worksheet.

Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.

Code:

Sub CreateObject_Example3 () Dim ExlWb As Object Set ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub

Rzeczy do zapamiętania o CreateObject w VBA

  • W języku VBA funkcja CreateObject służy do odwoływania się do obiektów.
  • Funkcja Create Object powoduje późny proces wiązania.
  • Korzystając z funkcji tworzenia obiektu, nie uzyskujemy dostępu do listy IntelliSense języka VBA.

Interesujące artykuły...