Formularze wprowadzania danych w programie Microsoft Excel. Korzystanie z MS Excel

Dom / Windows 7

Wielu użytkowników Excela nie widzi różnicy pomiędzy pojęciami „format komórki” i „typ danych”. W rzeczywistości są to dalekie od identycznych koncepcji, choć z pewnością są ze sobą powiązane. Dowiedzmy się, jaka jest istota typów danych, na jakie kategorie są podzielone i jak można z nimi pracować.

Typ danych to cecha informacji przechowywanych w arkuszu. Na podstawie tej cechy program określa sposób przetwarzania określonej wartości.

Typy danych są podzielone na dwie duże grupy: stałe i formuły. Różnica między nimi polega na tym, że formuły wyprowadzają do komórki wartość, która może się zmieniać w zależności od zmiany argumentów w innych komórkach. Stałe to stałe wartości, które się nie zmieniają.

Z kolei stałe dzielą się na pięć grup:

  • Tekst;
  • Dane numeryczne;
  • Data i godzina;
  • Dane logiczne;
  • Błędne wartości.

Dowiedzmy się bardziej szczegółowo, co reprezentuje każdy z tych typów danych.

Wartości tekstowe

Typ tekstowy zawiera dane znakowe i nie jest traktowany przez Excel jako obiekt obliczenia matematyczne. Informacje te są przeznaczone przede wszystkim dla użytkownika, a nie dla programu. Tekst może składać się z dowolnego znaku, w tym cyfr, pod warunkiem, że jest odpowiednio sformatowany. W języku DAX ten typ danych odnosi się do wartości łańcuchowych. Maksymalna długość tekstu wynosi 268435456 znaków w jednej komórce.

Aby wprowadzić wyrażenie symboliczne, należy wybrać komórkę tekstową lub format ogólny, w której będzie ono zapisane, i wpisać tekst z klawiatury. Jeśli długość wyrażenia tekstowego przekracza wizualne granice komórki, wówczas jest ono nakładane na sąsiadujące wyrażenia, chociaż fizycznie nadal jest przechowywane w oryginalnej komórce.

Dane numeryczne

Do obliczeń bezpośrednich wykorzystywane są dane liczbowe. To za ich pomocą Excel wykonuje różne operacje matematyczne (dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie, ekstrakcja pierwiastków itp.). Ten typ danych przeznaczony jest wyłącznie do zapisywania liczb, ale może zawierać także znaki pomocnicze (%, $ itp.). Można w związku z tym zastosować kilka rodzajów formatów:

  • Właściwie numeryczne;
  • Procent;
  • Monetarny;
  • Budżetowy;
  • Frakcyjny;
  • Wykładniczy.

Dodatkowo Excel posiada możliwość dzielenia liczb na cyfry oraz określania ilości cyfr po przecinku (w ułamkach).

Wprowadzanie danych numerycznych odbywa się analogicznie jak wartości tekstowe, o którym mówiliśmy powyżej.

Data i godzina

Innym typem danych jest format godziny i daty. Dzieje się tak dokładnie w przypadku, gdy typy i formaty danych są takie same. Charakteryzuje się tym, że można nim wskazywać na arkuszu i przeprowadzać obliczenia z datami i godzinami. Warto zauważyć, że przy obliczaniu tego typu danych dzień przyjmuje się jako jednostkę. Co więcej, dotyczy to nie tylko dat, ale także czasu. Przykładowo godzina 12:30 jest przez program uznawana za 0,52083 dnia i dopiero wtedy jest wyświetlana w komórce w formie znanej użytkownikowi.

Istnieje kilka typów formatowania czasu:

  • h:mm:ss;
  • Hmm;
  • h:mm:ss AM/PM;
  • h:mm AM/PM itp.

Podobnie jest z datami:

  • DD.MM.RRRR;
  • DD.MMM
  • MMM.GG itp.

Istnieją również łączone formaty daty i godziny, na przykład DD:MM:RRRR h:mm.

Trzeba też wziąć pod uwagę, że program jako daty wyświetla tylko wartości rozpoczynające się od 01.01.1900.

Dane logiczne

Typ danych Boolean jest dość interesujący. Działa tylko z dwiema wartościami: "PRAWDA" I "KŁAMSTWO". Jeśli jest przesadzone, oznacza to „wydarzenie nadeszło” i „wydarzenie nie nadeszło”. Funkcje przetwarzające zawartość komórek zawierających dane logiczne wykonują określone obliczenia.

Błędne wartości

Wartości błędów stanowią odrębny rodzaj danych. W większości przypadków pojawiają się po wykonaniu nieprawidłowej operacji. Do takich niepoprawnych operacji należy na przykład dzielenie przez zero lub wprowadzenie funkcji bez przestrzegania jej składni. Wśród błędnych wartości są następujące:

  • #WARTOŚĆ! – użycie niewłaściwego typu argumentu dla funkcji;
  • #SPRAWA! – dzielenie przez 0;
  • #NUMER! – nieprawidłowe dane liczbowe;
  • #N/A – wprowadzono niedostępną wartość;
  • #NAZWA? – błędna nazwa we wzorze;
  • #PUSTY! – błędne wprowadzenie adresów zakresów;
  • #POŁĄCZYĆ! – Występuje, gdy komórki, do których wcześniej odwoływała się formuła, zostaną usunięte.

Formuły

Osobną, dużą grupą typów danych są formuły. W przeciwieństwie do stałych, najczęściej nie są one widoczne w samych komórkach, a jedynie wyświetlają wynik, który może się zmieniać w zależności od zmiany argumentów. W szczególności wzory służą do różnych obliczeń matematycznych. Samą formułę można zobaczyć na pasku formuły, podświetlając komórkę, w której jest zawarta.

Warunkiem, aby program postrzegał wyrażenie jako formułę, jest obecność przed nim znaku równości (=) .

Funkcje stanowią odrębny rodzaj formuł. Są to unikalne podprogramy, które zawierają zbiór argumentów i przetwarzają je według określonego algorytmu. Funkcje można wprowadzić do komórki ręcznie, umieszczając w niej znak «=» lub możesz użyć do tych celów specjalnej powłoki graficznej Kreator funkcji, który zawiera całą listę operatorów dostępnych w programie, podzieloną na kategorie.

Używając Kreatorzy funkcji Można przejść do okna argumentów dla konkretnego operatora. Jego pola zawierają dane lub łącza do komórek zawierających te dane. Po naciśnięciu przycisku "OK" określona operacja jest wykonywana.

Jak widzimy, w programu Excela Istnieją dwie główne grupy typów danych: stałe i formuły. Te z kolei dzielą się na wiele innych typów. Każdy typ danych ma swoje właściwości, biorąc pod uwagę, który program je przetwarza. Opanowanie umiejętności rozpoznawania i prawidłowej pracy z różne typy danych to podstawowe zadanie każdego użytkownika chcącego nauczyć się efektywnie wykorzystywać Excel zgodnie z jego przeznaczeniem.

Praktyka pokazuje, że aplikacje Microsoft Office (Excel, Word, Power Point itp.) należą do najczęściej używanych aplikacji Windows. Każdy z nich jest serwerem COM, dlatego każdy obiekt w nim zawarty może być używany przez Twój program jako własny.

Istnieją dwa sposoby uzyskania dostępu do metod i właściwości obiektu COM: przez odwołanie do jego biblioteki typów (wczesne wiązanie) i przez nazwę (późne wiązanie). W przypadku Object Pascal preferowane jest wczesne wiązanie, ponieważ w tym przypadku kompilator może sprawdzić, czy dostęp do właściwości i metod obiektów zewnętrznych jest prawidłowy, a generowany przez niego kod zwykle wykonuje się szybciej.- Visual Basic for Application (VBA) nie obsługuje wskaźników i dlatego nie może używać interfejsów. Specjalnie dla tego typu języka (oprócz VBA, JavaScript, SmallTalk i niektórych innych również nie działają ze wskaźnikami) do technologii COM wprowadzono interfejsy dispinterface, umożliwiające dostęp do metod i właściwości po nazwie, a nie po adresie. Instalując Office, możesz zainstalować pomoc VBA, która szczegółowo opisuje interfejsy serwerów Microsoft Office, wskazując przeznaczenie metod i właściwości, a także parametry dostępu do nich. Tak naprawdę są to jedyne dokumenty dostępne programiście, na których powinien się opierać programując dostęp do potężnych możliwości serwerów Microsoft Office. Należy pamiętać, że podczas standardowej instalacji pakietu Microsoft Office nie jest instalowana pomoc VBA. Jeśli w katalogu Pliki programu| Microsoft Office | Office nie znajdziesz plików vbaxl8.hlp (pomoc programu Excel), vbawrd8.hlp (pomoc programu Word) itp., musisz je dodać za pomocą przycisku Start | Ustawienie | Panel sterowania | Instalowanie i usuwanie programów.

Wersja 5 Delphi zawiera komponenty strony Serwery, które umożliwiają dostęp do obiektów COM tych serwerów przy użyciu bibliotek typów, ale te komponenty są praktycznie nieudokumentowane. Co więcej, same biblioteki są już zaimplementowane w pakiecie dclaxserver50, więc używając tej wersji Delphi nigdy nie udało mi się uzyskać ich tekstów. We wszystkich przypadkach studiowanie obszernych tekstów bibliotecznych (na przykład plik Excel_TLB.pas zawiera ponad 20 tysięcy wierszy) daje niewielkie korzyści nawet doświadczonemu programiście.

W tej sekcji znajduje się krótki opis głównych obiektów dwóch najpopularniejszych serwerów - Excel i Word, a także przykłady użycia Excela w stylu VBA (według nazwy) i wykorzystania komponentów strony Serwery. Ponieważ język VBA został znacznie rozbudowany specjalnie dla wersji MS Office 97, materiał ten nie może być używany do współpracy z wcześniejszymi wersjami pakietu.

Podstawowe obiekty serwerów Excel i Word

Terminologia VBA wykorzystuje pojęcia „obiekt” i „kolekcja”. Obiekt to zwykły obiekt interfejsu COM, który ma właściwości, metody i zdarzenia. Kolekcja to grupa obiektów tego samego typu. Przykładowo główny obiekt serwera Excel – Aplikacja definiuje główne właściwości i metody serwera, a kolekcja Worksheets to zbiór stron tabelarycznych w bieżącym skoroszycie itp. Hierarchie obiektów i kolekcji pokazane poniżej zostały pobrane z plików vbaXXX.hlp. W przeciwieństwie do obiektów VCL, są one budowane nie według zasady dziedziczenia, ale według podporządkowania funkcjonalnego.

Obiekty Excela

Serwer Excel to potężny procesor arkuszy kalkulacyjnych, który przechowuje i przetwarza różnego rodzaju dane (zarówno numeryczne, jak i tekstowe), łącznie z konstruowaniem wykresów i opartych na nich wykresów. Podczas pracy z programem Excel tworzony jest tak zwany skoroszyt (plik danych) składający się z jednego lub większej liczby arkuszy. Wszystkie arkusze jednego skoroszytu można ze sobą łączyć, co pozwala organizować wspólne obliczenia na umieszczonych na nich danych.

Teraz małe wyjaśnienia. Zmienne Arkusz i Zakres zostały wprowadzone jedynie po to, aby skrócić tekst programu: wszędzie zamiast Arkusza można napisać np. Excel.Workbooks.Sheets. Delphi 4 jest dostarczany z plikami XLCONST.PAS i XLCONST.DCU, które definiują stałe xlXXX używane w dokumentacji vbaxl8.hlp. Pliki te nie są dostarczane z wersją 5, dlatego używam ich numerycznych odpowiedników. Szerokość marginesu drukowanego dokumentu Excel podawana jest w jednostkach wewnętrznych, co odpowiada w przybliżeniu 3,5 mm, dlatego wartości określone w instrukcjach Sheet.PageSetup.XXXXXXMargin spowodują ustawienie lewego, dolnego i prawego marginesu na szerokość 1,1 cm, a szerokość kolumny od góry do 1,4 cm jest zdefiniowana w znakach tekstu mieszczących się w kolumnie bez przycinania.

Zmienna Excel definiuje pole w klasie TForm1. Kiedy klasa jest tworzona, automatycznie umieszczana jest w niej wartość VarEmpty. Po zakończeniu pracy z Excelem użytkownik może go zamknąć. Jednak w moim programie Excel nie był wizualizowany, jego praca odbywała się „za kulisami”, a utworzona tabela została zapisana do wskazanego przez użytkownika pliku za pomocą operatora Excel.Workbooks.SaveAs(FileName).

Następnie Excel został zamknięty. Ponieważ w naszym przypadku Excel pokazuje swoje okno, ale użytkownik nie może go zamknąć, warto napisać następującą procedurę obsługi zdarzenia OnDestroy w postaci:

Procedura TForm1.FormDestroy(Sender: TObject); rozpocznij, jeśli nie VarIsEmpty(Excel), to Excel.Zakończ koniec;

Uruchamiając przykład pamiętaj, że utworzenie cennika w Excelu jest procesem dość długotrwałym. Na moim komputerze (400 MHz, 64 MB) trwało to około minuty (przykładowo podobny cennik powstaje za pomocą Quick Report w niecałe 2 sekundy). Na końcu procedury obsługi całkowity czas działania jest umieszczany na etykiecie lb.

Wczesne wiązanie

Poniższy przykład funkcjonalnie powtarza poprzedni. Tworzy również cennik za pomocą programu Excel, jednak tym razem wykorzystuje dostęp bezpośrednio poprzez interfejsy serwera. Czeka na Ciebie „niespodzianka”: czas wykonania drugiego przykładu jest dłuższy o 40 sekund! Nie udało mi się znaleźć rozsądnego wytłumaczenia tego zjawiska, ale oba przykłady znajdują się na dołączonej płycie, więc w każdej chwili możecie się o tym przekonać.

Ponieważ kształt drugiego przykładu jest dokładnie taki sam jak pierwszy, nie będę wyjaśniał, co trzeba zrobić, aby go utworzyć. Do formularza dodaj tylko komponent TExcelApplication i skonfiguruj jego właściwości: Name=Excel, AutoConnect=True, AutoQuit=True.

Jeśli używasz poprzedniego przykładowego formularza jako szablonu, nie wstawiaj pola Excel do klasy TForm1. Procedura obsługi Button1Click powinna wyglądać tak (patrz Listing 2).

Jak widać, jest on bardzo podobny do modułu obsługi z poprzedniego przykładu. Dlatego zatrzymam się na różnicach.

Podczas uzyskiwania dostępu do właściwości SheetsInNewWorkbook, podobnie jak w wielu innych przypadkach podczas uzyskiwania dostępu do właściwości i metod interfejsu, wymagany jest identyfikator języka lokalizacji (lcid). Wartość 0 koduje język domyślny. Ten sam identyfikator przekazywany jest jako drugi parametr wywołania metody Excel.Workbooks.Add. Pierwszym parametrem musi być nazwa pliku (w formacie WideString), jeśli skoroszyt został już utworzony wcześniej, lub „pusty” parametr DesertParam, jeśli skoroszyt jest tworzony po raz pierwszy.

Wszystkie moje próby pracy z obiektami Range zakończyły się niepowodzeniem. Abyście mnie za bardzo nie oceniali, w przykładowym katalogu umieściłem bibliotekę typów Excel_TLB.pas - przejrzyjcie ją w wolnej chwili i spróbujcie znaleźć odpowiednie rozwiązanie na zmianę szerokości łamów i marginesów arkusza, gdyż a także do kolorowania zakresu, wyrównywania tekstu itp.

Podsumowując, chciałbym jeszcze raz zwrócić uwagę na fakt, że późne wiązanie pod względem czasu wykonania wcale nie jest gorsze od wczesnego wiązania - przynajmniej w przypadku rozważanych przykładów. Biorąc pod uwagę, że dla zdecydowanej większości programistów na serwerach MS Office jedynymi dokumentami dostępnymi są pliki pomocy vbaXXX.hlp, możemy stwierdzić: korzystanie z opcji (późne wiązanie) jest prostsze, wygodniejsze i co najważniejsze, znacznie bardziej przejrzyste niż bezpośrednia praca z interfejsy (wczesne wiązanie).

ComputerPress 6"2001

Do tej pory przyglądaliśmy się funkcjom VBA bez większego związku z informacjami zawartymi w arkuszu. W tym rozdziale zapoznamy się z obiektami, które pozwalają na pracę z danymi znajdującymi się w komórkach arkuszy skoroszytów programu Microsoft Excel. W kolejnych rozdziałach omówione zostaną złożone rozwiązania w oparciu o podstawowe projekty, które tutaj omówimy.

Cały plik roboczy Skoroszyty programu Excel reprezentowane w obiekcie Workbook, który ma dużą liczbę właściwości i metod. Pomoc do nich dostępna jest zarówno w pomocy online VBA, jak i w duże ilości publikacje na ten temat. Nie będziemy zagłębiać się w informacje czysto referencyjne, a we wstępie rozważymy jedynie informacje, z którymi później spotkamy się w rozważanych przykładach.

Na przykład właściwość Worksheets obiektu Workbook reprezentuje rodzinę wszystkich arkuszy w skoroszycie. Aby uzyskać dostęp do konkretnego arkusza przy użyciu tej właściwości, wystarczy podać numer arkusza jako parametr, który wygląda następująco - Arkusze (numer arkusza). Inną opcją jest określenie nazwy arkusza jako parametru - Arkusze („Nazwa arkusza”).

Jednym z najczęściej programowanych zdarzeń związanych ze skoroszytem jest zdarzenie Otwórz, które występuje po otwarciu skoroszytu. Jeśli więc chcemy, aby podczas otwierania książki zostały wykonane określone czynności, powinniśmy umieścić niezbędne kod programu wewnątrz procedury Workbook_Open. Większość poniższych przykładów skupi się na programowaniu tego wydarzenia.

Następnym obiektem w hierarchii po Workbook jest obiekt Worksheet, który reprezentuje arkusz. Spośród wielu metod tego obiektu szeroko stosowana jest metoda Activate, która istnieje również dla rodziny arkuszy Worksheets, o której już wspomnieliśmy powyżej. Na przykład, jeśli podczas pracy na pierwszym arkuszu skoroszytu musisz aktywować trzeci arkusz, wówczas składnia linii programu w procedurze (powiedzmy wykonywana przez kliknięcie przycisku) powinna wyglądać następująco:

Arkusze ćwiczeń(3).Aktywuj

Wiadomo, że Microsoft Excel oferuje usługę związaną z ochroną skoroszytów i tworzących je arkuszy. Dlatego w przykładach wykorzystamy metodę Protect (z rodziny Worksheets), która chroni arkusz przed zmianami. Dla instalacja oprogramowania Zabezpieczenie hasłem (hasło jest określone w parametrze Hasło tej metody) trzeciego arkusza można wykonać w następujący sposób:

Arkusze(3).Chroń hasło:="12345", DrawingObjects:=True, _ Treść:=True, Scenariusze:=True

Istnieje również odpowiednia metoda Unprotect, która pozwala usunąć ochronę z arkusza. W przypadku nowo zainstalowanej ochrony metoda jej usunięcia jest następująca:

Arkusze(3).Odblokuj hasło:="12345"

Każdy praca praktyczna w Excelu w ten czy inny sposób dotyczy informacji w komórkach. Do pracy z komórkami w VBA służy obiekt Range (przetłumaczony jako zakres komórek). A użycie tego obiektu wymaga podania parametru – zakresu komórek, które nas interesują. Może to być pojedyncza komórka lub grupa komórek. Jeśli więc napiszemy

Arkusze(3).Zakres („A1”).Wartość = 5,

to oznacza, że ​​w komórce A1 Na trzecim arkuszu programowo zapisujemy liczbę 5. Tutaj korzystamy z głównej właściwości obiektu Range - Value. Dosłownie oznacza wartość lub zawartość komórki (lub grupy komórek).

W poniższej konstrukcji litera jest programowo wprowadzana do zestawu komórek A:

Arkusze(1).Zakres („A1:C3”).Wartość = „A”.

Innym sposobem pracy z komórkami jest użycie obiektu Cells, którego składnia jest następująca:

Komórki (numer wiersza, numer kolumny).

Tak naprawdę z punktu widzenia zastosowania przedmiotowe przedmioty są do siebie podobne. Na przykład pobierz wartość komórki w zmiennej Z D5 może dwa na różne sposoby:

Z = zakres („D5”). Wartość lub Z = komórki (5,4). Wartość .

Jako przykład projektu programu na temat obu tych obiektów można podać następujące zadanie:

Arkusze(2).Zakres(“C5”).Wartość = Arkusze(3).Komórki(5, 1).Wartość

Termin Obiekty Excela(szeroko rozumiany jako model obiektowy programu Excel) zawiera elementy tworzące dowolny skoroszyt programu Excel. Są to np. karty pracy ( Arkusze ćwiczeń), ciągi znaków ( Wydziwianie), kolumny ( Kolumny), zakresy komórek ( Zakresy) i sam skoroszyt programu Excel ( Podręcznik z ćwiczeniami) w tym. Każdy obiekt Excela ma zestaw właściwości, które stanowią jego integralną część.

Na przykład obiekt Arkusz(arkusz) ma właściwości Nazwa(Nazwa), Ochrona(ochrona), Widoczny(widoczność), Przewiń obszar(obszar przewijania) i tak dalej. Dlatego jeśli podczas wykonywania makra musisz ukryć arkusz, po prostu zmień właściwość Widoczny ten arkusz.

W Excel VBA istnieje specjalny rodzaj obiektów - kolekcja. Jak sama nazwa wskazuje, kolekcja odnosi się do grupy (lub kolekcji) obiektów Excela. Na przykład zbiór Wydziwianie jest obiektem zawierającym wszystkie wiersze arkusza.

Dostęp do wszystkich głównych obiektów programu Excel można uzyskać (bezpośrednio lub pośrednio) za pośrednictwem obiektu Zeszyty ćwiczeń, który jest zbiorem wszystkich otwartych w w tej chwili zeszyty ćwiczeń. Każdy skoroszyt zawiera obiekt Arkusze– zbiór zawierający wszystkie arkusze i arkusze diagramów znajdujące się w skoroszycie. Każdy obiekt Arkusz składa się z kolekcji Wydziwianie– zawiera wszystkie linie arkusza i zbiory Kolumny– wszystkie kolumny arkusza itd.

W poniższej tabeli wymieniono niektóre z najczęściej używanych obiektów programu Excel. Pełną listę obiektów Excel VBA można znaleźć na stronie Microsoft Office Developer (w języku angielskim).

Obiekt Opis
Aplikacja Aplikacja Excela.
Zeszyty ćwiczeń Zbiór wszystkich aktualnie otwartych skoroszytów w bieżącej aplikacji Excel. Dostęp do określonego skoroszytu można uzyskać poprzez obiekt Zeszyty ćwiczeń używając indeksu numerycznego skoroszytu lub jego nazwy, na przykład Zeszyty ćwiczeń(1) Lub Skoroszyty („Książka 1”).
Podręcznik z ćwiczeniami Obiekt Podręcznik z ćwiczeniami- To jest zeszyt ćwiczeń. Dostęp do niego można uzyskać poprzez kolekcję Zeszyty ćwiczeń używając indeksu numerycznego lub nazwy skoroszytu (patrz wyżej). Aby uzyskać dostęp do aktualnie aktywnego skoroszytu, możesz użyć Aktywny zeszyt ćwiczeń.

Z obiektu Podręcznik z ćwiczeniami możesz uzyskać dostęp do obiektu Arkusze, który jest zbiorem wszystkich arkuszy skoroszytu (arkuszy i wykresów), a także obiektem Arkusze ćwiczeń, który jest zbiorem wszystkich arkuszy w skoroszycie programu Excel.

Arkusze Obiekt Arkusze to zbiór wszystkich arkuszy w skoroszycie. Mogą to być arkusze ćwiczeń lub diagramy na osobnym arkuszu. Uzyskaj dostęp do pojedynczego arkusza z kolekcji Arkusze można uzyskać posługując się indeksem numerycznym arkusza lub jego nazwą, np. Arkusze(1) Lub Arkusze („Arkusz 1”).
Arkusze ćwiczeń Obiekt Arkusze ćwiczeń to zbiór wszystkich arkuszy w skoroszycie (tzn. wszystkich arkuszy z wyjątkiem wykresów na osobnym arkuszu). Uzyskaj dostęp do pojedynczego arkusza z kolekcji Arkusze ćwiczeń można uzyskać posługując się indeksem numerycznym arkusza lub jego nazwą, np. Arkusze ćwiczeń(1) Lub Arkusze („Arkusz 1”).
Arkusz Obiekt Arkusz to oddzielny arkusz w skoroszycie programu Excel. Można uzyskać do niego dostęp za pomocą indeksu numerycznego arkusza lub nazwy arkusza (patrz wyżej).

Ponadto możesz użyć Arkusz aktywny aby uzyskać dostęp do aktualnie aktywnego arkusza. Z obiektu Arkusz możesz uzyskać dostęp do obiektów Wydziwianie I Kolumny, które są zbiorem obiektów Zakres, odwołując się do wierszy i kolumn arkusza. Możesz także uzyskać dostęp do pojedynczej komórki lub dowolnego zakresu sąsiednich komórek w arkuszu.

Wydziwianie Obiekt Wydziwianie to zbiór wszystkich wierszy arkusza. Obiekt Zakres, składający się z pojedynczej linii arkusza, można uzyskać dostęp za pomocą tego numeru linii, np. Wiersze(1).
Kolumny Obiekt Kolumny jest zbiorem wszystkich kolumn arkusza. Obiekt Zakres, składający się z pojedynczej kolumny arkusza, można uzyskać dostęp po numerze tej kolumny, np. Kolumny(1).
Zakres Obiekt Zakres to dowolna liczba sąsiednich komórek w arkuszu. Może to być jedna komórka lub wszystkie komórki arkusza.

Dostęp do zakresu składającego się z pojedynczej komórki można uzyskać poprzez obiekt Arkusz korzystanie z własności Komórki, Na przykład, Arkusz.Komórki(1,1).

W inny sposób można zapisać odwołanie do zakresu, podając adresy komórek początkowych i końcowych. Można je zapisać oddzielone dwukropkiem lub przecinkiem. Na przykład, Arkusz.Zakres(“A1:B10”) Lub Arkusz.Zakres("A1", "B10") Lub Arkusz.Zakres(Komórki(1,1), Komórki(10,2)).

Proszę zwrócić uwagę, czy adres Zakres druga komórka nie jest określona (na przykład Arkusz.Zakres("A1") Lub Arkusz.Zakres(Komórki(1,1)), wówczas wybrany zostanie zakres składający się z pojedynczej komórki.

Powyższa tabela pokazuje, jak dostęp do obiektów Excela uzyskuje się poprzez obiekty nadrzędne. Na przykład odwołanie do zakresu komórek można zapisać w następujący sposób:

Skoroszyty("Księga1").Arkusze("Arkusz1").Zakres("A1:B10")

Przypisanie obiektu do zmiennej

W Excel VBA obiekt można przypisać do zmiennej za pomocą słowa kluczowego Ustawić:

Wymnij DataWb jako skoroszyt Ustaw DataWb = skoroszyty("Książka1.xlsx")

Aktywny obiekt

W dowolnym momencie w programie Excel znajduje się aktywny obiekt Podręcznik z ćwiczeniami to skoroszyt aktualnie otwarty. Podobnie istnieje obiekt aktywny Arkusz, obiekt aktywny Zakres i tak dalej.

Odwołaj się do aktywnego obiektu Podręcznik z ćwiczeniami Lub Arkusz w kodzie VBA możesz zrobić tak: Aktywny zeszyt ćwiczeń Lub Arkusz aktywny i do aktywnego obiektu Zakres- jak w Wybór.

Jeśli kod VBA zawiera odwołanie do arkusza bez określenia, do którego skoroszytu należy, Excel domyślnie wybiera aktywny skoroszyt. Podobnie, jeśli odwołujesz się do zakresu bez określenia konkretnego podręcznik z ćwiczeniami lub arkusz kalkulacyjny, program Excel domyślnie wyświetli aktywny arkusz w aktywnym skoroszycie.

Zatem odnosząc się do zakresu A1:B10 w aktywnym arkuszu aktywnego skoroszytu możesz po prostu napisać:

Zakres("A1:B10")

Zmiana aktywnego obiektu

Jeśli podczas wykonywania programu chcesz uaktywnić inny skoroszyt, inny arkusz, zakres itp., wówczas musisz użyć metod Aktywować Lub Wybierać tak:

Sub ActivateAndSelect() skoroszyty("Książka2").Aktywuj arkusze("Arkusz2").Wybierz arkusze("Arkusz2").Zakres("A1:B10").Wybierz arkusze("Arkusz2").Zakres("A5") .Aktywuj subskrypcję końcową

Metody obiektowe, w tym metody właśnie użyte Aktywować Lub Wybierać, zostaną omówione bardziej szczegółowo poniżej.

Właściwości obiektu

Każdy obiekt VBA ma przypisane właściwości. Na przykład obiekt Podręcznik z ćwiczeniami ma właściwości Nazwa(Nazwa), Numer wersji(liczba zapisów), Arkusze(prześcieradła) i wiele innych. Aby uzyskać dostęp do właściwości obiektu, należy wpisać nazwę obiektu, następnie kropkę, a na końcu nazwę właściwości. Na przykład dostęp do nazwy aktywnego skoroszytu można uzyskać w następujący sposób: ActiveWorkbook.Nazwa. Zatem przypisanie do zmiennej nazwa_wb nazwę aktywnego skoroszytu, możesz użyć tego kodu:

Dim wbName As String wbName = ActiveWorkbook.Name

Wcześniej pokazaliśmy, jak obiekt Podręcznik z ćwiczeniami można użyć, aby uzyskać dostęp do obiektu Arkusz używając tego polecenia:

Skoroszyty("Księga1").Arkusze("Arkusz1")

Jest to możliwe dzięki kolekcji Arkusze ćwiczeń jest właściwością obiektu Podręcznik z ćwiczeniami.

Niektóre właściwości obiektu są tylko do odczytu, co oznacza, że ​​użytkownik nie może zmieniać ich wartości. Jednocześnie istnieją właściwości, którym można przypisać różne wartości. Na przykład, aby zmienić nazwę aktywnego arkusza na „ Mój arkusz ćwiczeń„, po prostu przypisz tę nazwę do właściwości Nazwa aktywny arkusz, taki jak ten:

ActiveSheet.Name = "Mój arkusz"

Metody obiektowe

Obiekty VBA mają metody umożliwiające wykonanie określonych działań. Metody obiektowe– są to procedury powiązane z obiektami określonego typu. Na przykład obiekt Podręcznik z ćwiczeniami ma metody Aktywować, Zamknąć, Ratować i wiele innych.

Aby wywołać metodę na obiekcie, należy zapisać nazwę obiektu, kropkę i nazwę metody. Na przykład, aby zapisać aktywny skoroszyt, możesz użyć tego wiersza kodu:

ActiveWorkbook.Zapisz

Podobnie jak inne procedury, metody mogą mieć argumenty przekazywane do metody w momencie jej wywołania. Na przykład metoda Zamknąć obiekt Podręcznik z ćwiczeniami ma trzy opcjonalne argumenty, które określają, czy skoroszyt powinien zostać zapisany przed zamknięciem i tym podobnymi.

Aby przekazać argumenty do metody, należy po wywołaniu metody zapisać wartości tych argumentów, oddzielając je przecinkami. Na przykład, jeśli chcesz zapisać aktywny skoroszyt jako plik .csv o nazwie „Book2”, należy wywołać metodę Zapisz jako obiekt Podręcznik z ćwiczeniami i przekaż argument Nazwa pliku oznaczający Książka 2 i argument Format pliku- oznaczający xlCSV:

ActiveWorkbook.SaveAs "Book2", xlCSV

Aby uczynić kod bardziej czytelnym, podczas wywoływania metody możesz używać nazwanych argumentów. W takim przypadku najpierw wpisz nazwę argumentu, a następnie operator przypisania „ := ”, a po nim wskaż wartość. Zatem powyższy przykład wywołania metody Zapisz jako obiekt Podręcznik z ćwiczeniami można zapisać inaczej:

Nazwa pliku ActiveWorkbook.SaveAs:="Książka2", :=xlCSV

W oknie Przeglądarka obiektów Edytor Visual Basic wyświetla listę wszystkich dostępnych obiektów, ich właściwości i metod. Aby otworzyć tę listę, uruchom Edytor Visual Basic i kliknij F2.

Spójrzmy na kilka przykładów

Przykład 1

Ten fragment kodu VBA może służyć jako ilustracja użycia pętli Dla każdego. W w tym przypadku będziemy się do niego odnosić, aby zademonstrować odniesienia do obiektów Arkusze ćwiczeń(który domyślnie jest pobierany z aktywnego skoroszytu) i łącza do każdego obiektu Arkusz osobno. Należy pamiętać, że właściwością używaną do wyświetlania nazwy każdego arkusza jest Nazwa obiekt Arkusz.

„Przewiń jeden po drugim wszystkie arkusze w aktywnym skoroszycie” i wyświetl okno komunikatu z nazwą każdego arkusza. Wyciemnij wSheet As Worksheet For Every wSheet in Worksheets MsgBox "Znaleziono arkusz: " & wSheet.Name Następny wSheet

Przykład 2

Ten przykładowy kod VBA pokazuje, jak uzyskać dostęp do arkuszy i zakresów komórek z innych skoroszytów. Dodatkowo upewnisz się, że jeśli nie zostanie podane odwołanie do konkretnego obiektu, to domyślnie użyte zostaną aktywne obiekty Excela. Ten przykład ilustruje użycie słowa kluczowego Ustawić przypisać obiekt do zmiennej.

W poniższym kodzie dla obiektu Zakres metoda nazywa się WklejSpecjalne. Ta metoda przekazuje argument Pasta oznaczający xlWklej wartości.

„Skopiuj zakres komórek z arkusza „Arkusz1” innego skoroszytu (o nazwie Data.xlsx) „i wklej tylko wartości do arkusza „Wyniki” bieżącego skoroszytu (o nazwie CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:\Data") "Zauważ, że DataWb jest aktywnym skoroszytem." Dlatego na obiekcie Sheets w DataWb wykonywana jest następująca akcja. Arkusze("Arkusz1").Range("A1:B10").Copy "Wklej wartości skopiowane z zakresu komórek do arkusza "Wyniki" bieżącego skoroszytu. Należy pamiętać, że skoroszyt CurrWb.xlsm nie jest „aktywny” i dlatego należy się do niego odwoływać Workbooks("CurrWb").Sheets("Results").Range("A1").PasteSpecial Paste:=xlPasteValues

Przykład 3

Poniższy fragment kodu VBA przedstawia przykładowy obiekt (kolekcję) Kolumny i demonstruje, w jaki sposób można uzyskać do niego dostęp z obiektu Arkusz. Ponadto zobaczysz, że odwołując się do komórki lub zakresu komórek w aktywnym arkuszu, nie musisz dołączać tego arkusza do odniesienia. Znów spotykamy się ze słowem kluczowym Ustawić, za pomocą którego obiekt Zakres przypisany do zmiennej Przełęcz.

Ten kod VBA pokazuje również przykład dostępu do właściwości Wartość obiekt Zakres i zmianę jego znaczenia.

„Za pomocą pętli przeglądamy wartości w kolumnie A arkusza „Arkusz2”, „wykonujemy na każdym z nich operacje arytmetyczne i wynik zapisujemy” w kolumnie A aktywnego arkusza (Arkusz1) Dim i As Integer Dim Col As Range Dim dVal As Double "Przypisz zmienną Col kolumna A arkusza "Arkusz2" Ustaw Col = Sheets("Sheet2").Columns("A") i = 1 "Przeglądamy wszystkie komórki kolumny Col po kolei dopóki nie napotkamy pustej komórki Do Until IsEmpty(Col. Cells(i)) "Wykonuj operacje arytmetyczne na wartości bieżącej komórki dVal = Col.Cells(i).Value * 3 - 1 "Następujące polecenie zapisuje wynik do kolumna A „aktywnego arkusza. Nie ma potrzeby podawania nazwy arkusza w odwołaniu”, ponieważ Jest to aktywny arkusz skoroszytu.

Komórki(i, 1).Wartość = dVal i = i + 1 Pętla DO Do głównych obiektów MS Excel opisanych w tej sekcji należą: skoroszyt (

Zeszyt ćwiczeń) i

rodzina skoroszytów (skoroszyty), arkusz (arkusz) i rodzina arkuszy (arkusze), zakres komórek lub komórka (zakres).

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Przykład:

Rodzina WorkBooks („Książka 1”) zapewnia dostęp do skoroszytu. Tytuł książki podano w nawiasie.

Rodzina Arkusze („Arkusz1”) zapewnia dostęp do arkusza. Nazwa arkusza jest podana w nawiasach.

Rodzina Range zapewnia dostęp do zakresu komórek lub do komórki. Zakres komórek lub nazwa komórki jest podana w nawiasach.

Rodzina komórek (nr wiersza, nr kolumny) zapewnia dostęp do komórki. Współrzędne komórek podano w nawiasach.

Przykłady:

Zeszyty ćwiczeń („Książka 1”)

Arkusze („Arkusz1”) Zakres („A1”) Zakres („A1:B10”) Komórki(2,3) Komórki(k,i+1)

5.4.4.1. Obiekt skoroszytu i rodzina skoroszytów

W Obiekt hierarchii MS Excel Skoroszyt (skoroszyt) pojawia się bezpośrednio po obiekcie Application i jest plikiem skoroszytu. Skoroszyt jest przechowywany w plikach XLS (standardowy skoroszyt) lub XLA (w pełni skompilowana aplikacja). Umożliwiają to właściwości i metody skoroszytu

pracować z plikami. Ten obiekt jest częścią rodziny (zestawu)

Zeszyty ćwiczeń (<Индекс>) zwraca obiekt o indeksie w zestawie.

Skoroszyty („<Имя>") zwraca obiekt według nazwy w zestawie. ActiveWorkbook zwraca odwołanie do aktywnego skoroszytu w momencie wykonania polecenia.

5.4.4.1.1. Właściwości

ActiveSheet zwraca aktywny arkusz. Aby uzyskać nazwę arkusza, użyj właściwości Nazwa obiektu Arkusz.

Przykłady:

MsgBox("Nazwa aktywnego arkusza" & ActiveSheet.Name)

MsgBox(ActiveWorkbook.ActiveSheet.Name) – Wyświetla nazwę aktywnego arkusza w oknie dialogowym. Aktywny dialog – zwraca aktywne okno dialogowe. Aktywny wykres – zwraca aktywny wykres.

Arkusze — zwraca rodzinę wszystkich arkuszy w skoroszycie.

Arkusze — zwraca rodzinę wszystkich arkuszy w skoroszycie.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Dla każdego s w ActiveWorkbook.Sheets MsgBox (s.Name)

Wykresy — zwraca rodzinę wszystkich wykresów ze skoroszytu, które nie są osadzone w arkuszach.

Count – zwraca liczbę obiektów rodziny Workbooks (number otwierane przez aplikację książki).

FullName — zwraca pełną nazwę skoroszytu.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

MsgBox(ActiveWorkbook.FullName)

Nazwa — zwraca nazwę aktywnego skoroszytu. 245

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

MsgBox(ActiveWorkbook.Nazwa)

Ścieżka – zwraca ścieżkę do pliku skoroszytu.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

MsgBox(ActiveWorkbook.Path)

5.4.4.1.2. Metody

Metoda Activate aktywuje skoroszyt w taki sposób, że jego pierwszy arkusz staje się arkuszem bieżącym (dostępnym do pracy).

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Skoroszyty („Książka 1”). Aktywuj

Skoroszyt.Aktywuj

Metoda Close zamyka skoroszyt. Close SaveChanges FileName – zamyka skoroszyt. Parametr SaveChanges pozwala kontrolować, czy zmiany mają być zapisywane w skoroszycie. Jeżeli ma wartość True, to zmiany zostaną zapisane, jeśli – False, to nie zostaną zapisane. Parametr FileName jest ciągiem znaków zawierającym nazwę pliku skoroszytu.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Skoroszyty („Księga 1”). Zamknij skoroszyty („Książka 1”). Zamknij ZapiszChanges: = Prawdziwa nazwa pliku: = „Książka 2”

Nowe okno ma na celu otwarcie określonej książki w nowym oknie.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Skoroszyty („Książka 1”). Nowe okno

Zapisz służy do zapisywania zmian w skoroszycie.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Zeszyty ćwiczeń („Książka 1”). Zapisz

Zapisz jako nazwę pliku – służy do zapisania książki pod inną nazwą (w innym pliku).

SaveAsCopy – przeznaczony do zapisywania skoroszytu w innym pliku, pozostawiając go otwartym pod tą samą nazwą.

Przykłady:

Skoroszyty („Książka 1”).SaveAs FileName:=„kdjf.xls”

ActiveBook.SaveAsCopy Nazwa pliku:=”Moja książka”

Otwórz nazwę pliku – umożliwia otwarcie skoroszytu o nazwie określonej w parametrze FileName.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Workbooks.Open FileName:=“Książka1.xls”

5.4.4.1.3. Wydarzenia

Główne zdarzenia obiektu Workbook przedstawiono w tabeli. 5.13.

Tabela 5.13

Kiedy nastąpi zdarzenie

Podczas zamykania skoroszytu

Przed wydrukowaniem skoroszytu

Przed zapisaniem skoroszytu

Podczas dodawania nowego arkusza

Podczas otwierania skoroszytu

Po aktywowaniu arkusza

5.4.4.2. Obiekt arkusza i rodzina WorkSheets

W Obiekt hierarchii MS Excel Arkusz ćwiczeń pojawia się natychmiast po

Obiekt Workbook reprezentuje arkusz w skoroszycie i jest częścią rodziny Worksheets (zestawu).

Przykłady:

Arkusze („Arkusz 1”). Aktywuj Arkusze (1). Aktywuj

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Arkusz aktywny.Zakres („a1”)=1

5.4.4.2.1. Właściwości

Właściwość Nazwa umożliwia pracę z nazwą arkusza.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Arkusze ćwiczeń(1).Name=”Wyniki”

ActiveCell – Zwraca aktywną komórkę aktywnego arkusza.

komórka o określonych współrzędnych.

Kolumny (<столбец>) – zwraca referencję do kolumny. Parametrem może być nazwa kolumny lub numer.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Arkusze(1).Kolumny(“a”)=1

Arkusze(1).Kolumny(1)=1

Wydziwianie(<строка>) -in zwraca odwołanie do łańcucha. Numer linii może być użyty jako parametr.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Arkusze(1).Wiersze(1)=1

Zakres(<Диапазон ячеек>) – zwraca odwołanie do określonego zakresu komórek.

Po obiekcie, zwykle przez kropkę”. ", wskazuje właściwość lub metodę. Czasami, aby dostać się do określonego obiektu, trzeba przejść przez hierarchię obiektów wyższego poziomu.

Arkusze („Arkusz1”).UsedRange.Value=1 Liczba – zwraca liczbę arkuszy w skoroszycie.

Widoczny – określa, czy arkusz ma być wyświetlany w skoroszycie. Prawidłowe wartości to: True – arkusz zostanie wyświetlony na ekranie; False – arkusz jest niewidoczny (ukryty), ale można go wyświetlić na ekranie za pomocą sekwencji poleceń Format, Arkusz,

Wyświetlanie (format, arkusz, pokaz); xlBardzo Ukryty – arkusz jest ukryty i można go wyświetlić na ekranie jedynie programowo.

Przykłady:

Subpuste() Arkusze („Arkusz3”).Visible=False

Sub-otwarte()

Arkusze („Arkusz3”).Visible=True

Sub Puste1() Arkusze („Arkusz4”).Widoczne=xlBardzoUkryte

© 2024 ermake.ru - O naprawie komputerów PC - Portal informacyjny