Co to jest metoda CreateObject w VBA i jak korzystać z metody CreateObject w programie Excel?

Spisie treści:

Anonim

Jak sama nazwa wskazuje, funkcja CreateObject służy do tworzenia obiektów.

Ale dlaczego używamy metody lub funkcji CreateObject, jeśli możemy bezpośrednio utworzyć obiekt za pomocą słowa kluczowego new?

Cóż, to ważne pytanie i mamy odpowiednią odpowiedź.

Tworzenie obiektu za pomocą CreateObject nazywa się Późne wiązanie. W późnym wiązaniu tworzenie obiektów odbywa się w czasie wykonywania. Nie wymaga dodawania żadnych odniesień. Dzięki temu kod VBA jest przenośny.

Na przykład, jeśli tworzysz aplikację, która zajmuje się innymi aplikacjami i używasz wczesne wiązanie dodając referencje i używając Nowy słowo kluczowe. Później przeniesiesz ten kod na inną maszynę, wtedy będziesz musiał dodać referencje również na tej maszynie. Ale jeśli użyłeś metody CreateObject do tworzenia innych obiektów aplikacji, nie będziesz musiał dodawać referencji na innych komputerach, w przypadku przeniesienia lub udostępnienia kodu.

W tym artykule poznamy metodę CreateObject na kilku przykładach.

Składnia funkcji CreateObject:

Ustaw nazwę_obiektu= CreateObject(nazwa klasy jako ciąg,[nazwa serwera])

nazwa klasy jako ciąg: Jest to zmienna wymagana. Jest to ciąg znaków, który odwołuje się do nazwy aplikacji i typu obiektu. Nazwę aplikacji i klasę tworzonego obiektu należy zadeklarować w AppName.ObjecType. Na przykład, jeśli chcę obiekt aplikacji Word, to napisałbym "Word.Application". Zobaczymy to szczegółowo w przykładach później.

[Nazwa serwera]: Jest to zmienna opcjonalna. Jest to ciąg nazwy serwera sieciowego, na którym zostanie utworzony obiekt. Jeśli nazwa_serwera jest pustym ciągiem (""), używana jest maszyna lokalna. Nie będziemy tego używać w tym rozdziale.

Teraz, gdy znamy podstawy funkcji CreateObject, wykorzystajmy je w kilku przykładach:

Przykład 1: Otwórz aplikację Microsoft Word za pomocą Excel VBA

Tak więc, gdybyśmy chcieli użyć wczesnego wiązania, dodawalibyśmy referencje do aplikacji tekstowych za pomocą menu Narzędzia-->Referencje.

A nasz kod wyglądałby tak.

Sub OpenWordApp() Przyciemnij wordApp jako nowy Word.Application Przyciemnij wordDoc jako dokument wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub 

Zaletą tego kodu jest to, że otrzymujesz pomoc inteligencji VBA i pokazuje Ci dostępną metodę i właściwości utworzonego obiektu. Będzie działał idealnie dla Twojego systemu. Ale jeśli udostępnisz ten kod komuś innemu, a on nie dodał odniesienia do biblioteki słów Microsoft z narzędzi, otrzyma błąd.

Aby uniknąć tego błędu, użyj poniższego kodu.

Sub OpenWordApp() Dim wordApp jako obiekt ustawiony wordApp = CreateObject("Word.Application") Dim wordDoc jako obiekt wordApp.Visible = True Ustaw wordDoc = wordApp.Documents.Add End Sub 

Powyższy kod będzie działał idealnie na każdej maszynie. Jest przenośny, ponieważ wykonujemy późne wiązanie za pomocą metody CreateObject, aby utworzyć obiekt.

Zobaczmy inny przykład:

Przykład 2: Utwórz obiekt skoroszytu za pomocą funkcji CreateObject

Jeśli pracujesz z VBA przez jakiś czas, musisz utworzyć lub dodać do skoroszytów za pomocą słowa kluczowego New. W tym przykładzie zrobimy to za pomocą CreateObject.

Sub addSheet() ' Zadeklaruj zmienną obiektu do przechowywania ' odniesienia do obiektu. Dim as Object powoduje późne wiązanie. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ' Uwidocznienie programu Excel przez obiekt Application. ExcelSheet.Application.Visible = True ' Umieść tekst w pierwszej komórce arkusza. ExcelSheet.Application.Cells(1, 1).Value = "To jest kolumna A, wiersz 1" ' Zapisz arkusz w katalogu C:\test.xls. ExcelSheet.SaveAs "C:\TEST.XLS" ' Zamknij program Excel metodą Quit w obiekcie Application. ExcelSheet.Application.Quit ' Zwolnij zmienną obiektu. Ustaw ExcelSheet = Nic, koniec Sub 

Tak, tak, w ten sposób używasz metody CreateObject w VBA. Porozmawiajmy o jego zaletach i wadach.

Zalety CreateObject do tworzenia Object

Główną zaletą CreateObject jest to, że sprawia, że ​​kod jest przenośny (gdy chodzi o tworzenie obiektu). Możesz udostępnić kod każdemu, nie martwiąc się, czy dodał odwołanie do programu obiektowego, używając, czy nie.

Wada CreateObject

Wady metody CreateObject to:

Musisz znać strukturę klasy, której będziesz używać do tworzenia obiektów.

Po utworzeniu obiektu jesteś całkowicie zależny od swojej pamięci w zakresie metod i właściwości obiektów, ponieważ VBA nie zapewnia żadnego intellisense, który mógłby ci pomóc.

Możemy przezwyciężyć powyższe niedociągnięcia. Mam sztuczkę.

Ilekroć piszę kod, który będzie udostępniany innym, używam pierwszej metody tworzenia obiektów (Dodawanie referencji z narzędzi). To pomaga mi szybciej pisać kod. Po skończeniu programu VBA i przetestowaniu go, zastępuję metodę New metodą CreateObject. Dzięki temu kod jest przenośny. Możesz użyć tej sztuczki.

Więc tak, tak możesz użyć funkcji CreateObject do tworzenia obiektów w VBA. Mam nadzieję, że udało mi się wszystko wyjaśnić. Jeśli masz jakieś pytania dotyczące tego artykułu lub innych pytań związanych z VBA, zapytaj mnie w sekcji komentarzy poniżej.

Pierwsze kroki z formularzami użytkownika Excel VBA| Wyjaśnię, jak stworzyć formularz w Excelu, jak korzystać z przybornika VBA, jak obsługiwać dane wejściowe użytkownika i wreszcie jak przechowywać dane wejściowe użytkownika. Przejrzymy te tematy na jednym przykładzie i przewodniku krok po kroku.

Zmienne VBA w Excelu| VBA oznacza Visual Basic for Applications. Jest to język programowania firmy Microsoft. Jest używany z aplikacjami Microsoft Office, takimi jak MSExcel, MS-Word i MS-Access, podczas gdy zmienne VBA są specyficznymi słowami kluczowymi.

Zakres zmiennych Excel VBA| We wszystkich językach programowania mamy specyfikatory dostępu do zmiennych, które definiują, skąd można uzyskać dostęp do zdefiniowanej zmiennej. Excel VBA nie jest wyjątkiem. VBA również ma specyfikatory zakresu.

Argumenty ByRef i ByVal | Gdy argument jest przekazywany jako argument ByRef do innej podrzędnej lub funkcji, wysyłane jest odwołanie do rzeczywistej zmiennej. Wszelkie zmiany wprowadzone w kopii zmiennej zostaną odzwierciedlone w oryginalnym argumencie.

Usuń arkusze bez monitów o potwierdzenie za pomocą VBA w programie Microsoft Excel | Ponieważ usuwasz arkusze za pomocą VBA, wiesz, co robisz. Chcesz powiedzieć programowi Excel, aby nie wyświetlał tego ostrzeżenia i usuwał ten cholerny arkusz.

Dodaj i zapisz nowy skoroszyt za pomocą VBA w programie Microsoft Excel 2016| W tym kodzie najpierw utworzyliśmy odwołanie do obiektu skoroszytu. A następnie zainicjalizowaliśmy go nowym obiektem skoroszytu. Zaletą tego podejścia jest to, że możesz łatwo wykonywać operacje na tym nowym skoroszycie. Jak zapisywanie, zamykanie, usuwanie itp.

Wyświetl komunikat na pasku stanu Excel VBA| Pasek stanu w programie Excel może być używany jako monitor kodu. Gdy twój kod VBA jest długi i wykonujesz kilka zadań za pomocą VBA, często wyłączasz aktualizację ekranu, aby nie widzieć migotania ekranu.

Wyłącz komunikaty ostrzegawcze za pomocą VBA w programie Microsoft Excel 2016| Ten kod nie tylko wyłącza alerty VBA, ale także zwiększa wydajność czasową kodu. Zobaczmy jak.

Popularne artykuły:

50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.

Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.

LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby zliczyć określone wartości. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.

Jak korzystać z funkcji SUMIF w programie Excel | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.