VBA ComboBox

Skrzynki Combo zezwól użytkownikom na wybór opcji z listy rozwijanej. ComboBoxes można tworzyć w VBA UserForms lub za pomocą arkusza Excel. W tym samouczku dowiesz się, jak tworzyć i manipulować ComboBoxami w VBA i arkuszach Excel.

Jeśli chcesz dowiedzieć się, jak utworzyć Listbox, kliknij tutaj: VBA Listbox

Jeśli chcesz dowiedzieć się, jak utworzyć pole wyboru, kliknij tutaj: VBA Checkbox

Utwórz ComboBox w arkuszu programu Excel

Aby wstawić ComboBox do arkusza roboczego, musisz przejść do Karta programisty, Kliknij Wstawić i pod kontrolkami ActiveX wybierz Pole kombi:

Obraz 1. Wstaw ComboBox do arkusza roboczego

Po wybraniu wstawionego ComboBoxu możesz kliknąć Nieruchomości pod Karta programisty:

Obraz 2. Zmień właściwości ComboBox

Tutaj możesz ustawić różne właściwości ComboBox. Na początek zmieniliśmy atrybut Nazwa do cmbComboBox. Teraz możemy użyć ComboBox o tej nazwie w kodzie VBA.

Wypełnij ComboBox w kodzie VBA

Najpierw musimy wypełnić ComboBox wartościami. W większości przypadków ComboBox musi być wypełniony po otwarciu skoroszytu. Z tego powodu musimy umieścić kod do wypełnienia ComboBox w obiekcie zeszyt ćwiczeń, procedura Otwarty. Ta procedura jest wykonywana za każdym razem, gdy użytkownik otwiera skoroszyt. Oto kod:

123456789 Z Sheet1.cmbComboBox.AddItem "Jan".Dodaj pozycję "Michael".Dodaj pozycję "Jennifer".AddItem "Lilly".AddItem "Robert"Kończyć z

Po kliknięciu menu rozwijanego otrzymasz 5 imion do wyboru (John, Michael, Jennifer, Lilly i Robert):

Obraz 3. Wypełnij ComboBox w VBA

Wypełnij ComboBox z zakresu komórek

Innym możliwym sposobem wypełnienia ComboBoxu jest pozwolenie użytkownikowi na zrobienie tego. ComboBox można połączyć z zakresem komórek. W tym podejściu za każdym razem, gdy użytkownik wprowadzi nową wartość w zakresie komórek, ComboBox zaktualizuje się o tę wartość.

Jeśli chcesz to włączyć, musisz przejść do Nieruchomości ComboBox i ustaw atrybut ListaWypełnij Zakres do zakresu komórek (w naszym przypadku E2:E5):

Obraz 4. Wypełnij ComboBox z zakresu komórek

Połączyliśmy nasz ComboBox z zakresem E2:E5, gdzie umieszczamy żądane nazwy (Nathan, Harry, George, Roberta). W rezultacie ComboBox jest teraz wypełniony tymi nazwami:

Rysunek 5. Wypełniony ComboBox z zakresu komórek

Uzyskaj wybrany element ComboBox w VBA

Celem ComboBox jest wybór użytkownika. Aby pobrać wybór użytkownika, musisz użyć tego kodu:

123 Dim strSelectedItem As VariantstrSelectedItem = Arkusz1.cmbComboBox.Value

Wybór użytkowników znajduje się w atrybucie Wartość z Arkusz1.cmbPole Combo obiekt. Ta wartość jest przypisana do zmiennej strSelectedItem:

Obraz 6. Uzyskaj wybraną wartość z ComboBox w VBA

Wybraliśmy Julia w ComboBox i wykonał procedurę. Jak widać na obrazku 5, wartość strSelectedItem jest Julia, czyli wybrana przez nas wartość. Teraz możesz dalej przetwarzać tę zmienną w kodzie.

Wyczyść ComboBox

Jeśli chcesz wyczyścić ComboBox w VBA, musisz użyć Jasne metoda Arkusz1.lstComboBox obiekt. Usunie wszystkie elementy z ComboBox. Oto kod:

1 Arkusz1.cmbComboBox.Wyczyść

Kiedy wykonujemy kod, otrzymujemy pusty ComboBox:

Obraz 7. Wyczyść ComboBox

Użyj ComboBox w formularzu użytkownika

Jak wspomnieliśmy, Combobox jest najczęściej używany w Userforms. Aby wyjaśnić, jak możesz to zrobić, najpierw wstawimy formularz użytkownika. W edytorze VBA kliknij prawym przyciskiem myszy nazwę modułu, kliknij Wstawić i wybierz Formularz użytkownika:

Obraz 8. Wstaw formularz użytkownika

Aby wyświetlić kontrolki do wstawiania, musisz włączyć Przybornik. Aby to zrobić, kliknijPrzybornik na pasku narzędzi. Następnie otrzymasz okna ze wszystkimi dostępnymi kontrolkami. Możesz kliknąć ComboBox aby utworzyć go w formularzu użytkownika.

Obraz 9. Wstaw ComboBox w Userform

Nazwiemy ComboBox cmbComboBox. Aby wypełnić go wartościami, musimy umieścić w metodzie następujący kod: Zainicjuj obiektu Formularz użytkownika:

12345678910111213 Prywatna Sub UserForm_Initialize()Z UserForm1.cmbComboBox.AddItem "Jan".Dodaj pozycję "Michael".Dodaj pozycję "Jennifer".AddItem "Lilly".AddItem "Robert"Kończyć zNapis końcowy

Ten kod jest wyzwalany za każdym razem, gdy użytkownik uruchamia formularz użytkownika i wypełnia pole Combobox tymi 5 nazwami:

Obraz 10. ComboBox z wartościami w Userform

Jeśli chcesz uzyskać wybraną wartość z ComboBox, musisz użyć tej samej logiki dla Combobox w arkuszu, co wyjaśniono wcześniej w artykule.

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

wave wave wave wave wave