Kontrolki VBA w programie Excel: formularze i kontrolki ActiveX

⚡ Inteligentne podsumowanie

Kontrolki VBA w programie Excel to interaktywne elementy, takie jak przyciski, pola wyboru i pola tekstowe, które tworzą graficzny interfejs użytkownika. Ta strona wyjaśnia kontrolki formularzy i kontrolki ActiveX, różnice między nimi oraz krok po kroku przykład przycisku polecenia ActiveX.

  • 🧩 Sterowanie GUI: Przyciski, pola wyboru, pola wyboru i etykiety tworzą interfejs, z którym użytkownik wchodzi w interakcję na arkuszu kalkulacyjnym.
  • 🗂️. Kontrolki formularza: Proste elementy sterujące, które uruchamiają pojedynczą przypisaną makroinstrukcję i działają na obu urządzeniach Windows i Mac Excel.
  • ⚙️ Kontrolki ActiveX: Bogatsze kontrolki z wieloma właściwościami i zdarzeniami, zakodowane w języku VBA, dostępne na Windows Tylko Excel.
  • 🔧 Warunek wstępny: Przed dodaniem kontrolek włącz wstążkę Deweloper i zapisz plik jako skoroszyt z włączonymi makrami.
  • ▶ ️ Przykład ActiveX: Przycisk polecenia drukuje ciąg znaków Guru99 Samouczek VBA do zakresu komórek A1 do A10 po kliknięciu.
  • 🖱️. Wydarzenia: Kontrolki ActiveX reagują na zdarzenia takie jak Click, Change i GotFocus za pośrednictwem dedykowanych podprogramów.

Kontrolki VBA w programie Excel

Kontrole VBA: Kontrola formularzy VBA i kontrolki ActiveX w Excelu

Kontrolki formularzy VBA/GUI w programie Excel

GUI to skrót od Graphical User Interface (graficzny interfejs użytkownika). GUI to część programu, z którą użytkownik wchodzi w interakcję. GUI składa się z kontrolek. Te kontrolki Excel VBA mogą być używane w formularzu. Poniższa tabela przedstawia niektóre z najczęściej używanych kontrolek GUI VBA.

S / N Control: OPIS
1 Command Służy do wykonywania kodu
2 Combo Box Służy do prezentowania użytkownikom rozwijanej listy
3 Sprawdź Box Używane dla wartości true lub false. Wiele pól wyboru może mieć wartość true w tym samym czasie.
4 Lista Box Służy do prezentowania użytkownikom prostej listy
5 Tekst Box Służy do akceptowania danych wejściowych użytkownika
6 Pasek przewijania Służy do zapewnienia paska przewijania do celów nawigacji.
7 Przycisk Spin Służy do zwiększania lub zmniejszania wartości liczbowych poprzez klikanie strzałek w górę lub w dół wyświetlanych na przycisku pokrętła
8 Przycisk opcji Używane do wartości prawdziwych lub fałszywych. W danej chwili tylko jeden przycisk opcji może mieć wartość prawdziwą.
9 Etykieta Służy do wyświetlania użytkownikowi statycznego tekstu
10 Obraz Służy do wyświetlania obrazów
11 Toggle Przycisk Przycisk, który ma stany wciśnięty i nienaciśnięty.

W kontrolce GUI VBA,

  1. Kliknij kartę programisty
  2. Kliknij przycisk Wstaw rozwijany

Pojawi się następujący panel rozwijany

Kontrolki formularzy VBA/GUI w programie Excel

Jeśli najedziesz myszką na kontrolki formularza VBA, pojawi się nazwa kontrolki, jak pokazano poniżej

Kontrolki formularzy VBA/GUI w programie Excel

Dodawanie elementów sterujących GUI do arkusza kalkulacyjnego

Teraz dodamy przycisk poleceń do naszego skoroszytu, w tym celu musimy

  • Kliknij menu Wstaw
  • Kliknij przycisk polecenia (kontrolka ActiveX), jak pokazano na powyższym obrazku
  • Przeciągnij i narysuj przycisk na arkuszu

Dodawanie elementów sterujących GUI do arkusza kalkulacyjnego

Ustawianie właściwości kontroli GUI

Ustawimy teraz podpis przycisku na bardziej opisowy

Ustawianie właściwości kontroli GUI

  1. Kliknij prawym przyciskiem myszy przycisk równości, który właśnie utworzyliśmy
  2. Wybierz menu właściwości
  3. Zostanie wyświetlone następujące okno właściwości

Ustawianie właściwości kontroli GUI

  • Ustaw właściwość name na btnButton. Właściwość name służy do identyfikacji kontrolki w oknie kodu. btn jest przedrostkiem przycisku.
  • Ustaw właściwość Podpis na opcję Kliknij mnie. Tekst we właściwości caption jest tym, co użytkownicy zobaczą na przycisku.

Kiedy skończysz, zamknij okno.

Otrzymasz następujące wyniki.

Ustawianie właściwości kontroli GUI

Różnica między kontrolkami formularza a kontrolkami ActiveX

Excel oferuje dwie rodziny kontrolek, a wybór odpowiedniej ułatwia realizację projektu. Kontrolki formularzy są wbudowane w Excela i uruchamiają pojedyncze, przypisane makro, natomiast kontrolki ActiveX to programowalne obiekty, które reagują na wiele zdarzeń za pośrednictwem kodu VBA. Poniższa tabela porównuje te dwie rodziny.

Cecha Form kontroli Kontrolki ActiveX
ustawienie Proste; przypisz jedno makro do kontrolki Wymaga kodu zdarzenia VBA, aby odpowiedzieć
Właściwości Ograniczony zestaw opcji Obszerny, obejmujący czcionkę, kolor i zachowanie
Wydarzenia Pojedyncza akcja po kliknięciu Wiele wydarzeń, takich jak Click, Change i GotFocus
zgodność Działa na Windows i Mac Excel Działa na Windows Tylko Excel
Najlepiej nadaje się do Szybkie i proste zadania arkusza kalkulacyjnego Interaktywne i dynamiczne formularze użytkownika

Krótko mówiąc, należy używać kontrolki formularza, gdy wystarczy pojedyncza makroinstrukcja, natomiast kontrolkę ActiveX należy wybrać, gdy interfejs wymaga rozbudowanych właściwości lub musi reagować na kilka zdarzeń użytkownika.

Przesłanka

Przed utworzeniem przykładu ActiveX należy przygotować skoroszyt tak, aby kontrolki były dostępne, a makra mogły zostać zapisane.

Konfigurowanie Microsoft przewyższać
Jak widzieliśmy w poprzednim samouczku, upewnij się, że na wstążce znajduje się ikona „Programista”, jak pokazano tutaj.

Przesłanka

Teraz zmień nazwę arkusza 1 na „VBA Opera„tor”, jak pokazano na zrzucie ekranu poniżej. Zapisz skoroszyt w pliku Excel Macro-Enabled Workbook (*.xlsm) z rozszerzeniem pliku (patrz obrazek poniżej).

Przesłanka

Następnie kliknij przycisk Zapisz.

Jak korzystać z kontrolki ActiveX w VBA

Mając gotowy skoroszyt, możemy dodać działający przycisk ActiveX. W tej sekcji dotyczącej kontrolki ActiveX w programie Excel pokażemy, jak włączyć przycisk „commandclick” w VBA i uruchomić program za pomocą tego przycisku.

Krok 1) W tym kroku kliknij opcję „przycisk wstawiania” w kontrolce Active X. Następnie wybierz z niego opcję przycisku polecenia.

Użyj kontrolki ActiveX w VBA

Krok 2) Aby wstawić „clickcommandbutton1” przeciągnij kursor myszy do arkusza Excel.

Użyj kontrolki ActiveX w VBA

Krok 3) Następnie kliknij prawym przyciskiem myszy przycisk polecenia i wybierz opcję „Widok Code".

Użyj kontrolki ActiveX w VBA

Krok 4) Sprawdź, czy jesteś na właściwym arkuszu. Otworzy się edytor kodu. Wpisz swój kod.

  • W kodzie zdefiniowaliśmy zakres od A1 do A10.
  • Ten zakres określa numer komórki w arkuszu Excel od „A1 do A10”.
  • Następnie definiujemy ciąg „Guru99 samouczek VBA” w kodzie
  • Więc po kliknięciu „przycisku polecenia” w Excelu powinno pojawić się „Guru99 VBA Tutorial” w zakresie komórek „A1 do A10”.

Użyj kontrolki ActiveX w VBA

Krok 5) W następnym kroku zapisz plik kodu, a następnie wyjdź z edytora. Aby powrócić do pliku Excel kliknij ikonę arkusza Excel Użyj kontrolki ActiveX w VBA po skrajnej lewej stronie.

Użyj kontrolki ActiveX w VBA

Krok 6) W arkuszu programu Excel zobaczysz, że karta Tryb projektowania jest włączona. Upewnij się, że jest „WYŁĄCZONY”, w przeciwnym razie Twój kod nie będzie działać.

Użyj kontrolki ActiveX w VBA

Krok 7) Gdy tryb projektowania jest wyłączony, nie będzie na nim zielonego podświetlenia. Teraz możesz kliknąć przycisk polecenia.

Użyj kontrolki ActiveX w VBA

Krok 8) Kliknij „CommandButton1”. Zostanie wydrukowane „Guru99 VBA Tutorial” w zakresie komórek „A1 do A10”.

Użyj kontrolki ActiveX w VBA

Pobierz Excel zawierający powyższy kod

Pobierz powyższy plik Excel Code

Typowe zdarzenia kontrolek ActiveX w języku VBA

Kontrolka ActiveX jest potężna, ponieważ reaguje na zdarzenia, czyli czynności wykonywane przez użytkownika na kontrolce. Każde zdarzenie uruchamia własną podprocedurę, więc ten sam przycisk może zachowywać się inaczej w zależności od działania użytkownika. Poniżej wymieniono najczęściej występujące zdarzenia.

  • Kliknij – uruchamia kod, gdy użytkownik kliknie kontrolkę, zdarzenie użyte w przykładzie powyżej.
  • zmiana – uruchamia się, gdy zmienia się wartość kontrolki, np.ping w polu tekstowym lub wybierając element pola kombi.
  • GotFocus / LostFocus – uruchamia się, gdy kontrolka uzyskuje lub traci fokus, przydatne do sprawdzania poprawności danych wejściowych.
  • Naciśnięcie klawisza – uruchamia się, gdy użytkownik naciśnie klawisz, gdy sterowanie jest aktywne.
  • Ruch myszy – uruchamia się, gdy wskaźnik myszy znajdzie się nad kontrolką.
  • Podwójne kliknięcie – uruchamia się, gdy użytkownik kliknie dwukrotnie kontrolkę.

Aby dodać kod dla dowolnego zdarzenia, włącz tryb projektowania, kliknij prawym przyciskiem myszy kontrolkę i wybierz opcję Widok Codei wybierz zdarzenie z listy rozwijanej znajdującej się na górze okna kodu.

FAQ

Kontrolka formularza uruchamia pojedynczą makroinstrukcję, którą do niej przypisujesz i działa na niej Windows i Mac. Kontrolka ActiveX jest programowana w VBA, udostępnia wiele właściwości i zdarzeń oraz jest dostępna na Windows Tylko Excel.

Menu Wstaw dla formantów formularzy i ActiveX znajduje się na wstążce Deweloper, która jest domyślnie ukryta. Włącz je w Plik > Opcje > Dostosuj wstążkę, a następnie zaznacz Deweloper, aby kontrolki i edytor VBA stały się dostępne.

Przycisk prawdopodobnie nadal znajduje się w trybie projektowania, o czym świadczy zielone podświetlenie na karcie Deweloper. Wyłącz tryb projektowania, aby kontrolka uruchomiła swój kod zdarzenia. Skoroszyt musi być również zapisany jako plik .xlsm z włączoną obsługą makr.

Tak. Asystenci AI, tacy jak Copilot, piszą podprogram Click or Change na podstawie prostego opisu, na przykład „wyczyść zakres” po naciśnięciu przycisku. Programista wkleja go do okna kodu kontrolki i testuje.

Tak. Opisz potrzebne dane wejściowe, a asystent AI zasugeruje odpowiedni element sterujący, taki jak pole kombi dla listy stałej lub pole wyboru dla wartości „tak” lub „nie”, i wyjaśni, jak ustawić jego kluczowe właściwości.

Podsumuj ten post następująco: