Obiekty VBA

Spisie treści

Obiekty Excel VBA odnoszą się do pojedynczych „jednostek” składających się z kodu i danych. Sama aplikacja Excel jest obiektem, podobnie jak skoroszyty, arkusze, zakresy komórek i kształty. Każdy obiekt ma skojarzone właściwości i metody. Obiekty mogą również zawierać inne obiekty, a obiekt kolekcje służy do odwoływania się do grupy tych samych obiektów programu Excel.

W tym samouczku przyjrzymy się niektórym powszechnie używanym obiektom Excela.

Obiekt aplikacji

Obiekt aplikacji odnosi się do całej aplikacji Excel. Obiekt Application zawiera obiekt skoroszytu.

Poniższy kod używa właściwości WindowState obiektu Application, aby ustawić okno programu Excel na maksymalny dostępny rozmiar:

12345 Sub MaksymalizacjaOkna Excela()Application.WindowState = xlMaximizedNapis końcowy

Obiekt skoroszytów

Obiekt Workbooks odwołuje się do kolekcji wszystkich aktualnie otwartych skoroszytów programu Excel.

Poniższy kod używa metody Workbooks.Add w celu utworzenia nowego skoroszytu i dodania go do kolekcji:

12345 Sub Dodawanie nowego zeszytu do kolekcji zeszytów()Skoroszyty.DodajNapis końcowy

Możesz uzyskać dostęp do pojedynczego skoroszytu w kolekcji Skoroszyty za pomocą jego numeru indeksu lub nazwy. Możesz więc odwołać się do skoroszytu o nazwie ExcelWb, używając skoroszytów („ExcelWB”).

Obiekt skoroszytu

Obiekt workbook jest częścią kolekcji Workbooks. Obiekt skoroszytu zawiera kolekcję arkuszy roboczych (arkusze) i kolekcję arkuszy (arkusze, arkusze wykresów i arkusze makr). Obiekt ActiveWorkbook odwołuje się do aktywnego skoroszytu.

Poniższy kod używa metody ActiveWorkbook.Save, aby zapisać bieżący aktywny skoroszyt:

12345 Sub Zapisywanie Skoroszytu()ActiveWorkbook.ZapiszNapis końcowy

Arkusze obiektu

Obiekt arkuszy odnosi się do kolekcji wszystkich arkuszy roboczych, arkuszy wykresów i makr w skoroszycie. Poniższy kod używa metody Sheets.Add w celu dodania nowego arkusza o nazwie ExtraSheet po ostatnim arkuszu w skoroszycie:

123456 Sub DodawanieNowegoArkusza()ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(Worksheets.Count), Count:=1, _Type:=xlWorksheet).Name = "Dodatkowy arkusz"Napis końcowy

Zwróć uwagę, że składnia metody Sheets.Add to:
Arkusze.Dodaj(Przed, Później, Liczyć, Rodzaj) gdzie:

Opcja „Before” jest opcjonalna i określa, że ​​nowy arkusz powinien zostać dodany przed istniejącym arkuszem.

-Po jest opcjonalny i określa, że ​​nowy arkusz powinien zostać dodany po istniejącym arkuszu.

-Liczba jest opcjonalna i określa liczbę arkuszy do dodania.

-Typ jest opcjonalny i określa typ arkusza. xlWorksheet doda nowy arkusz, xlChart doda nowy arkusz wykresu, a xlExcel4MacroSheet lub xlExcel4IntlMacroSheet doda nowy makroarkusz. Jeśli puste, używany jest domyślny xlWorksheet.

Dostęp do pojedynczego arkusza w kolekcji Arkuszy można uzyskać za pomocą jego numeru indeksu lub nazwy. Możesz więc odwołać się do Arkusza o nazwie SheetOne, używając Arkuszy („SheetOne”).

Arkusze Obiekt

Obiekt Worksheets odwołuje się do kolekcji wszystkich arkuszy w skoroszycie. Poniższy kod używa metody Worksheets.Add, aby dodać nowy arkusz:

12345 Sub DodawanieNowegoArkusza()Arkusze.DodajNapis końcowy

Dostęp do pojedynczego arkusza w kolekcji Arkusze można uzyskać za pomocą jego numeru indeksu lub nazwy. Możesz więc odwołać się do arkusza roboczego o nazwie SheetTwo, używając Arkuszy roboczych („SheetTwo”).

Obiekt arkusza roboczego

Obiekt worksheet jest częścią kolekcji Worksheets. Obiekt arkusza zawiera obiekt zakresu i inne obiekty. Obiekt ActiveSheet odnosi się do aktywnego arkusza.

Poniższy kod zmienia orientację strony aktywnego arkusza na poziomą:

12345 Sub Zmiana Orientacji na Krajobraz()ActiveSheet.PageSetup.Orientation = xlLandscapeNapis końcowy

Zauważ, że obiekt Sheet zawiera obiekt PageSetup, a jego właściwość orientacji jest ustawiona na xlLandscape.

Obiekt zakresu

Obiekt Range może odwoływać się do pojedynczej komórki lub zestawu komórek w arkuszu. Poniższy kod pokazuje, jak używać metody Range.Select do zaznaczania komórek A1:B1:

12345 Pod ZaznaczanieArange()Zakres("A1:B1").WybierzNapis końcowy

Kształty obiektu

Obiekt Shapes odwołuje się do kolekcji wszystkich kształtów w arkuszu. Poniższy kod zaznaczyłby wszystkie kształty w ActiveSheet:

12345 Pod Zaznaczanie wszystkich kształtów()ActiveSheet.Shapes.SelectAllNapis końcowy

Kształt obiektu

Obiekt Shape jest częścią kolekcji Shapes. Poniższy kod utworzy zaokrąglony kształt prostokąta, a następnie ustawi właściwość name obiektu kształtu:

123456789 Sub UżywającObiektuKształtu()Z Arkuszami(1).Shapes.AddShape(msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Zaokrąglony prostokąt"Kończyć zNapis końcowy

Model obiektowy Excel VBA

Model VBA Object programu Excel opisuje hierarchię wszystkich obiektów, których można używać w programie Excel. Na przykład możesz użyć obiektu Workbooks, aby odwoływać się do wszystkich innych obiektów pośrednio lub bezpośrednio. Poniższy kod pokazuje, jak wybrać komórkę A1 przy użyciu struktury hierarchicznej:

12345 Sub przy użyciu struktury hierarchicznej()Skoroszyty("Zeszyt1").Worksheets("Arkusz1").Range("A1").SelectNapis końcowy

Deklarowanie i przypisywanie zmiennej obiektowej

Obiekt można zadeklarować i przypisać do zmiennej za pomocą słów kluczowych Dim i Set.

Na przykład:

12 Dim ws jako arkusz roboczyUstaw ws = ActiveWorkbook.ActiveSheet

Poniższy kod pokazuje, jak zadeklarować i przypisać obiekt Range do zmiennej:

12345678910111213141516 Podrzędne przypisanieARangeToVariable()Dim rngOne As ObjectUstaw rngOne = Zakres("A1:C1")rngOne.Font.Pogrubienie = PrawdaZ rngOne.Czcionka.Pogrubienie = Prawda.Font.Name = "Calibri".Rozmiar.Czcionki = 9Kolor czcionki = RGB (35, 78, 125).Kolor.wnętrza = RGB(205, 224, 180).Borders(xlEdgeBottom).LineStyle = xlContinuousKończyć zNapis końcowy

Wynik to:

Aby opanować VBA, konieczne jest zrozumienie, jak działają obiekty. Możesz dowiedzieć się więcej z naszego interaktywnego samouczka VBA.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave