Szukaj…


Uwagi

Microsoft Excel zawiera kompleksowy język programowania makr o nazwie VBA. Ten język programowania zapewnia co najmniej trzy dodatkowe zasoby:

  1. Automatycznie prowadź program Excel z kodu za pomocą makr. W większości przypadków wszystko, co użytkownik może zrobić, manipulując programem Excel z interfejsu użytkownika, można zrobić, pisząc kod w programie Excel VBA.
  2. Utwórz nowe, niestandardowe funkcje arkusza.
  3. Interakcja programu Excel z innymi aplikacjami, takimi jak Microsoft Word, PowerPoint, Internet Explorer, Notatnik itp.

VBA oznacza Visual Basic for Applications. Jest to niestandardowa wersja czcigodnego języka programowania Visual Basic, który zasila makra Microsoft Excel od połowy lat 90.

WAŻNY
Upewnij się, że wszelkie przykłady lub tematy utworzone w tagu excel-vba są specyficzne i odpowiednie dla używania VBA z Microsoft Excel. Wszelkie sugerowane tematy lub przykłady, które są ogólne dla języka VBA, należy odrzucić, aby zapobiec powielaniu wysiłków.

  • przykłady na temat:

    Tworzenie i interakcja z obiektami arkusza
    Klasa WorksheetFunction i odpowiednie metody
    Korzystanie z wyliczenia xlDirection do nawigacji w zakresie

  • przykłady nie na temat:

    Jak utworzyć pętlę „dla każdej”
    Class Klasa MsgBox i sposób wyświetlania komunikatu
    Używanie WinAPI w VBA


Wersje

VB

Wersja Data wydania
VB6 01.10.1998
VB7 2001-06-06
WIN32 01.10.1998
WIN64 2001-06-06
PROCHOWIEC 01.10.1998

Przewyższać

Wersja Data wydania
16 01.01.2016
15 01.01.2013
14 01.01.2010
12 01.01.2007
11 01.01.2003
10 2001-01-01
9 1999-01-01
8 01.01.1997
7 1995-01-01
5 1993-01-01
2) 1987-01-01

Deklarowanie zmiennych

Aby jawnie zadeklarować zmienne w VBA, użyj instrukcji Dim , a następnie nazwy i typu zmiennej. Jeśli zmienna zostanie użyta bez zadeklarowania lub jeśli nie zostanie określony typ, zostanie przypisany typ Variant .

Użyj instrukcji Option Explicit w pierwszym wierszu modułu, aby wymusić zadeklarowanie wszystkich zmiennych przed użyciem (patrz ZAWSZE Użyj opcji „Explicit” ).

Zawsze zaleca się używanie Option Explicit ponieważ pomaga zapobiegać błędom pisowni / pisowni i zapewnia, że zmienne / obiekty zachowają zamierzony typ.

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

Wiele zmiennych można zadeklarować w jednym wierszu, używając przecinków jako separatorów, ale każdy typ musi być zadeklarowany indywidualnie , w przeciwnym razie będą domyślnie ustawione na typ Variant .

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

Zmienne można również zadeklarować przy użyciu przyrostków znaków typu danych ($% &! # @), Jednak ich stosowanie jest coraz bardziej odradzane.

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

Inne sposoby deklarowania zmiennych to:

  • Static jak: Static CounterVariable as Integer

Gdy użyjesz instrukcji statycznej zamiast instrukcji dim, zadeklarowana zmienna zachowa swoją wartość między wywołaniami.

  • Public jak: Public CounterVariable as Integer

Zmienne publiczne mogą być stosowane w dowolnych procedurach w projekcie. Jeśli zmienna publiczna jest zadeklarowana w module standardowym lub module klasy, może być również użyta w każdym projekcie, który odwołuje się do projektu, w którym deklarowana jest zmienna publiczna.

  • Private jak: Private CounterVariable as Integer

Zmienne prywatne mogą być używane tylko przez procedury w tym samym module.

Źródło i więcej informacji:

Zmienne deklarujące MSDN

Wpisz znaki (Visual Basic)

Otwieranie edytora Visual Basic (VBE)


Krok 1: Otwórz skoroszyt

wprowadź opis zdjęcia tutaj


Krok 2 Opcja A: Naciśnij klawisze Alt + F11

Jest to standardowy skrót do otwierania VBE.

Krok 2 Opcja B: Karta Deweloper -> Wyświetl kod

Najpierw należy dodać kartę programisty do wstążki. Przejdź do Plik -> Opcje -> Dostosuj wstążkę, a następnie zaznacz pole programisty.

wprowadź opis zdjęcia tutaj

Następnie przejdź do karty programisty i kliknij „Wyświetl kod” lub „Visual Basic”

wprowadź opis zdjęcia tutaj

Krok 2 Opcja C: karta Widok> Makra> Kliknij przycisk Edytuj, aby otworzyć istniejące makro

Wszystkie trzy z tych opcji otworzą Edytor Visual Basic (VBE):

wprowadź opis zdjęcia tutaj

Dodanie nowego odwołania do biblioteki obiektów

Procedura opisuje, jak dodać odwołanie do biblioteki obiektów, a następnie zadeklarować nowe zmienne w odniesieniu do nowych obiektów klasy biblioteki.

Poniższy przykład pokazuje, jak dodać bibliotekę PowerPoint do istniejącego projektu VB. Jak widać, obecnie biblioteka obiektów programu PowerPoint jest niedostępna.

wprowadź opis zdjęcia tutaj

Krok 1 : Wybierz menu Narzędzia -> Referencje… wprowadź opis zdjęcia tutaj

Krok 2 : Wybierz odniesienie, które chcesz dodać. W tym przykładzie przewijamy w dół, aby znaleźć „ Microsoft PowerPoint 14.0 Object Library ”, a następnie naciśnij „ OK ”. wprowadź opis zdjęcia tutaj

Uwaga: PowerPoint 14.0 oznacza, że wersja Office 2010 jest zainstalowana na komputerze.

Krok 3 : w edytorze VB, po jednoczesnym naciśnięciu Ctrl + Spacja , pojawia się opcja autouzupełniania programu PowerPoint. wprowadź opis zdjęcia tutaj

Po wybraniu PowerPoint i naciśnięciu . , pojawi się kolejne menu ze wszystkimi opcjami obiektów związanymi z biblioteką obiektów PowerPoint. Ten przykład pokazuje, jak wybrać obiekt Application PowerPoint. wprowadź opis zdjęcia tutaj

Krok 4 : Teraz użytkownik może zadeklarować więcej zmiennych za pomocą biblioteki obiektów PowerPoint.

Zadeklaruj zmienną, która odwołuje się do obiektu Presentation biblioteki obiektów PowerPoint. wprowadź opis zdjęcia tutaj

Zadeklaruj inną zmienną, która odwołuje się do obiektu Slide biblioteki obiektów PowerPoint. wprowadź opis zdjęcia tutaj

Teraz sekcja deklaracji zmiennych wygląda jak na zrzucie ekranu poniżej, a użytkownik może zacząć używać tych zmiennych w swoim kodzie. wprowadź opis zdjęcia tutaj

Wersja kodowa tego samouczka:

Option Explicit

Sub Export_toPPT()

Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide

' here write down everything you want to do with the PowerPoint Class and objects


End Sub

Witaj świecie

  1. Otwórz edytor Visual Basic (patrz Otwieranie edytora Visual Basic )
  2. Kliknij Wstaw -> Moduł, aby dodać nowy moduł:

wprowadź opis zdjęcia tutaj

  1. Skopiuj i wklej następujący kod w nowym module:
  Sub hello()
    MsgBox "Hello World !"
  End Sub

Pozyskać :

wprowadź opis zdjęcia tutaj

  1. Kliknij zieloną strzałkę „play” (lub naciśnij F5) na pasku narzędzi Visual Basic, aby uruchomić program: wprowadź opis zdjęcia tutaj

  2. Wybierz nowo utworzony sub „cześć” i kliknij Run : wprowadź opis zdjęcia tutaj

  3. Gotowe, powinieneś zobaczyć następujące okno:

wprowadź opis zdjęcia tutaj

Rozpoczęcie pracy z modelem obiektowym Excel

Ten przykład ma być delikatnym wprowadzeniem do modelu obiektowego Excela dla początkujących .


  1. Otwórz Edytor Visual Basic (VBE)
  2. Kliknij Widok -> Natychmiastowe okno, aby otworzyć okno natychmiastowe (lub ctrl + G ):

wprowadź opis zdjęcia tutaj

  1. Na dole VBE powinieneś zobaczyć następujące okno natychmiastowe:

wprowadź opis zdjęcia tutaj

To okno umożliwia bezpośrednie przetestowanie kodu VBA. Zacznijmy więc, wpisz w tej konsoli:

?Worksheets. 

VBE ma intellisense, a następnie powinien otworzyć etykietkę, jak na poniższym rysunku:

wprowadź opis zdjęcia tutaj

Wybierz .Count z listy lub bezpośrednio wpisz .Cout aby uzyskać:

?Worksheets.Count
  1. Następnie naciśnij Enter. Wyrażenie jest oceniane i powinno zwracać 1. Wskazuje liczbę arkuszy aktualnie obecnych w skoroszycie. Znak zapytania ( ? ) To alias dla Debug.Print.

Arkusze jest obiektem i hrabia jest metoda. Excel ma kilka obiektów ( Workbook , Worksheet , Range , Chart ...) i każdy z nich zawiera określone metody i właściwości. Pełną listę obiektów można znaleźć w dokumentacji Excel VBA . Arkusz roboczy Obiekt jest prezentowany tutaj .

Odwołanie do VBA programu Excel powinno stać się głównym źródłem informacji dotyczących modelu obiektowego Excel.

  1. Teraz spróbujmy innego wyrażenia, wpisz (bez znaku ? ):
Worksheets.Add().Name = "StackOveflow"
  1. Naciśnij enter. Powinno to utworzyć nowy arkusz StackOverflow. nazwie StackOverflow. :

wprowadź opis zdjęcia tutaj

Aby zrozumieć to wyrażenie, musisz przeczytać funkcję Dodaj w wyżej wspomnianym podręczniku programu Excel. Znajdziesz następujące:

Add:  Creates a new worksheet, chart, or macro sheet. 
The new worksheet becomes the active sheet. 
Return Value: An Object value that represents the new worksheet, chart,
 or macro sheet.

Więc Worksheets.Add() tworzy nowy arkusz i zwraca go. Arkusz roboczy ( bez s ) jest sam Obiektem, który można znaleźć w dokumentacji, a Name jest jedną z jego właściwości (patrz tutaj ). Jest zdefiniowany jako:

Worksheet.Name Property:  Returns or sets a String value that 
 represents the object name.

Tak więc, badając różne definicje obiektów, jesteśmy w stanie zrozumieć ten kod Worksheets.Add().Name = "StackOveflow" .

Add() tworzy i dodaje nowy arkusz i zwraca do niego odwołanie , a następnie ustawiamy jego właściwość Name na „StackOverflow”


Teraz bądźmy bardziej formalni, Excel zawiera kilka obiektów. Obiekty te mogą składać się z jednej lub kilku kolekcji obiektów Excel tej samej klasy. Tak jest w przypadku WorkSheets który jest zbiorem obiektu Worksheet WorkSheets . Każdy obiekt ma pewne właściwości i metody, z którymi programista może wchodzić w interakcje.

Model obiektowy Excel odnosi się do hierarchii obiektów Excel

Na górze wszystkich obiektów znajduje się obiekt Application , który reprezentuje samą instancję programu Excel. Programowanie w VBA wymaga dobrego zrozumienia tej hierarchii, ponieważ zawsze potrzebujemy odwołania do obiektu, aby móc wywołać metodę lub ustawić / uzyskać właściwość.

(Bardzo uproszczony) model obiektowy Excel można przedstawić jako:

                            Application
                             Workbooks
                             Workbook
                            Worksheets
                             Worksheet
                              Range

Bardziej szczegółowa wersja obiektu arkusza roboczego (tak jak w programie Excel 2007) jest pokazana poniżej,

wprowadź opis zdjęcia tutaj

Pełny model obiektowy Excel można znaleźć tutaj .

Wreszcie niektóre obiekty mogą mieć events (np. Workbook.WindowActivate ), które są również częścią modelu obiektowego Excel.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow