Přejít na hlavní obsah

Vytvoření vlastního formuláře s rozevíracím seznamem VBA Excel

Microsoft Excel je jedním z nejoblíbenějších tabulkových softwarových produktů. Spolu s širokou škálou funkcí nabízí Excel také možnosti pro vytváření vlastních tvarů, díky čemuž jsou pracovní postupy efektivnější a pohodlnější. V tomto článku se podíváme na to, jak vytvořit vlastní formulář s rozevíracím seznamem pomocí VBA (Visual Basic for Applications), vestavěného programovacího jazyka Excel.

Uživatelská forma je jakési rozhraní, které uživatelům umožňuje komunikovat s daty a provádět určité činnosti. Setkáme se s mnoha situacemi, ve kterých je nutné pomocí formulářů zlepšit práci s daty. Pokud máte například velký seznam dat, můžete vytvořit dropdown menu pro rychlé a snadné vyhledávání informací, které potřebujete.

VBA je programovací jazyk, který je součástí sady Microsoft Office a umožňuje vytvářet makra a automatizovat úkoly. V Excelu lze VBA použít k vytváření vlastních formulářů, přidávání tlačítek a rozevíracích seznamů a ke zpracování dat souvisejících s těmito položkami. V tomto článku se zaměříme na vytvoření formuláře s rozevíracím seznamem, který uživatelům umožní vybrat si možnosti z předdefinovaného seznamu.

Vytvoření vlastního formuláře

V aplikaci VBA Excel lze vytvářet vlastní formuláře, které uživatelům umožňují interakci s makry a makry. Vlastní formulář může obsahovat různé ovládací prvky, jako jsou tlačítka, textová pole, posuvníky a rozevírací seznamy.

Chcete-li vytvořit vlastní formulář v aplikaci VBA Excel, musíte postupovat podle následujících kroků:

  1. Otevřete Editor VBA stisknutím klávesy Alt+F11.
  2. V editoru VBA vyberte z nabídky kartu Vložka (Insert) a poté vyberte Uživatelský formulář (UserForm).
  3. V zobrazeném okně návrhu vlastního formuláře můžete přidat různé ovládací prvky přetažením do formuláře.
  4. Nakonfigurujte vlastnosti ovládacích prvků pomocí panelu vlastností, který se zobrazí ve spodní části editoru VBA.
  5. Napište kód pro zpracování událostí, ke kterým může dojít na formuláři, jako je klepnutí na tlačítko nebo změna hodnoty do vstupního pole.
  6. Uložte práci a zavřete Editor VBA.

Po vytvoření vlastního formuláře bude k dispozici pro použití ve vaší knize Excel. Formulář můžete vyvolat přidáním tlačítka na list nebo jej použít jako dialogové okno pro zadávání a zobrazování dat.

Vytvoření vlastního formuláře vám umožní učinit uživatelské rozhraní pro vaše makra uživatelsky přívětivějším a srozumitelnějším. Budou moci komunikovat s vaším kódem zadáním dat a získáním výsledků zpracování. Je to skvělý způsob, jak zvýšit použitelnost vašich Maker a učinit je profesionálnějšími.

Vytvoření formuláře

Chcete-li vytvořit vlastní formulář v aplikaci VBA Excel, musíte postupovat podle následujících kroků:

  1. Otevřít Visual Basic Editor stisknutím klávesové zkratky Alt + F11.
  2. V okně editoru vyberte požadovaný projekt ve stromu projektů vlevo.
  3. Klikněte pravým tlačítkem myši na projekt a vyberte Vložit ->Tvar.
  4. Na formuláři umístěte požadované ovládací prvky, jako jsou tlačítka, textová pole, rozevírací seznamy atd.
  5. Nastavte vlastnosti ovládacích prvků a tvarů podle potřeby.
  6. Napsat kód pro zpracování událostí ovládacích prvků.

Pro každý ovládací prvek lze na formuláři nastavit jedinečný název a vlastnosti, jako je velikost, umístění, barva, písmo atd. Tyto vlastnosti lze nastavit prostřednictvím vlastností prvku nebo programově prostřednictvím kódu.

Kromě toho v aplikaci VBA Excel existují různé události ovládacích prvků, které lze použít k vytvoření interaktivity formuláře. Například událost Click pro tlačítko se spustí, když na něj kliknete, událost Change pro rozevírací seznam se spustí, když se změní vybraná položka atd.

Chcete-li napsat kód pro zpracování událostí ovládacích prvků, musíte vybrat požadovanou položku na formuláři, kliknout pravým tlačítkem myši a vybrat Kód. Poté můžete vybrat událost ze seznamu a napsat požadovaný kód do okna, které se otevře.

Nastavení rozevíracího seznamu

Definice hodnot seznamu

Prvním krokem je určení hodnot, které se zobrazí v rozevíracím seznamu. K tomu lze použít pole hodnot. Například:

Dim values() As Variantvalues = Array("Значение 1", "Значение 2", "Значение 3")

Přidání hodnot do rozevíracího seznamu

Dále je třeba do rozevíracího seznamu přidat určité hodnoty. K tomu se používá vlastnost RowSource . Například:

UserForm1.ComboBox1.RowSource = "Sheet1!A1:A3"

Kde Je UserForm1.ComboBox1 je objekt rozevíracího seznamu a Sheet1!A1: A3 je rozsah buněk, který obsahuje hodnoty seznamu.

Pokud místo rozsahu buněk použijete pole hodnot, kód bude vypadat následovně:

UserForm1.ComboBox1.List = values

Zobrazení hodnot seznamu

Ve výchozím nastavení zobrazuje rozbalovací seznam pouze hodnoty jako text. Je však možné upravit zobrazení hodnoty a souvisejícího textu. K tomu se používá vlastnost ColumnCount . Například:

UserForm1.ComboBox1.ColumnCount = 2

V takovém případě se při výběru hodnoty ze seznamu do buňky umístí hodnota z prvního sloupce seznamu a text z druhého sloupce se zobrazí pro vybranou hodnotu.

Výběr hodnoty seznamu

V aplikaci VBA Excel lze vybranou hodnotu získat z rozevíracího seznamu pomocí vlastnosti Value . Například:

Dim selectedValue As StringselectedValue = UserForm1.ComboBox1.Value

V tomto případě bude vybraná hodnota uložena do proměnné selectedValue .

Nyní víte, jak nastavit rozevírací seznam v uživatelské podobě v aplikaci VBA Excel. Tato nastavení umožní uživatelům vytvořit uživatelsky přívětivou interaktivní formu.

Programování akcí při výběru položky seznamu

Když uživatel vybere položku z rozevíracího seznamu, můžete nastavit určité akce, které by se měly stát v reakci na tuto akci. V jazyce VBA lze tyto akce snadno programovat pomocí události změny hodnoty seznamu.

Zde je příklad kódu, který se provede výběrem položky ze seznamu:

    Vytvořte postup, který bude proveden při události změny hodnoty seznamu. Například:

Private Sub ComboBox1_Change()' Код, который выполнится при выборе элемента из спискаEnd Sub
Range("A1").Value = ComboBox1.Value

Programování akcí při výběru položky seznamu v aplikaci VBA Excel pomocí události změny hodnoty seznamu je tedy snadný a pohodlný způsob, jak přidat interaktivitu a funkčnost do vlastní podoby.

Přidání tlačítka pro odesílání dat

Aby uživatel mohl odesílat data z formuláře,je nutné přidat tlačítko pro odeslání dat. K tomu vytvoříme prvek input s typem submit . Níže je uveden kód, který je třeba přidat do našeho dokumentu HTML:

Po kliknutí na toto tlačítko budou data z formuláře odeslána na server. Text na tlačítku můžete také změnit nahrazením hodnoty atributu value .

Ukládání dat do excelové tabulky

Jakmile uživatel vyplní všechna pole ve vlastním formuláři, data musí být uložena v excelové tabulce. K tomu lze použít následující algoritmus:

  1. Přístup k aktivnímu listu v excelové tabulce.
  2. Určete pozici, kam budou data zapisována.
  3. Zapište data do příslušných buněk.
  4. Uložit změny v tabulce.

Pro začátek v případě potřeby otevřeme Excelovou tabulku, se kterou budeme pracovat:

Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.Worksheet'Sоздаем новый экземпляр приложения ExcelSet xlApp = New Excel.Application'Открываем существующий файл или создаем новыйSet xlBook = xlApp.Workbooks.Open("C:\Путь\к\файлу.xlsx")Set xlSheet = xlBook.Worksheets("Лист1") 'Устанавливаем активный лист

Dále určíme pozici, kam budou data zapisována. K zápisu dat v horní části tabulky můžeme použít aktuální aktivní řádek:

Dim lastRow As LonglastRow = xlSheet.Cells(xlSheet.Rows.Count, 1).End(xlUp).Row + 1 'Определяем текущую активную строку

Nyní můžeme zapisovat hodnoty z formuláře do příslušných buněk tabulky. Předpokládejme, že hodnoty jsou uloženy v proměnných value1, value2 a value3 :

xlSheet.Cells(lastRow, 1).Value = value1 'Записываем значение value1 в ячейку A(lastRow)xlSheet.Cells(lastRow, 2).Value = value2 'Записываем значение value2 в ячейку B(lastRow)xlSheet.Cells(lastRow, 3).Value = value3 'Записываем значение value3 в ячейку C(lastRow)

Nakonec, chcete-li uložit změny v tabulce, musíte zavřít aplikaci Excel:

xlBook.Close SaveChanges:=True 'Сохраняем изменения в файлеxlApp.Quit 'Закрываем приложение Excel

Nyní, po každém vyplnění formuláře a uložení dat, budou všechny hodnoty přidány do následujícího řádku tabulky.

Je důležité poznamenat, že při zápisu dat do excelové tabulky je třeba vzít v úvahu formát hodnot. Například pro číselné hodnoty lze použít formát " obecný "a pro datum formát"dlouhé Datum". K tomu lze použít vlastnost NumberFormat buňky:

xlSheet.Cells(lastRow, 1).NumberFormat = "Общий" 'Устанавливаем формат ячейки A(lastRow) как "Общий"xlSheet.Cells(lastRow, 2).NumberFormat = "Длинная дата" 'Устанавливаем формат ячейки B(lastRow) как "Длинная дата"

Nyní víte, jak ukládat data do tabulky Excel pomocí vlastního formuláře v aplikaci VBA Excel.

Testování a ladění formy

Jakmile vytvoříte vlastní formulář se seznamem, můžete jej začít testovat a ladit. Je důležité zajistit, aby formulář fungoval správně a interagoval s daty v tabulce.

Před zahájením testování se ujistěte, že jsou všechny položky formuláře správně nakonfigurovány. Zkontrolujte, zda rozbalovací seznam obsahuje všechny možnosti výběru, které potřebujete, a také určete výchozí aktivní hodnotu.

Poté spusťte vlastní formulář a otestujte jeho funkčnost. Ujistěte se, že můžete vybrat jednu z možností z rozevíracího seznamu a získat aktuální výsledek v příslušném poli nebo buňce.

Během testování věnujte pozornost interakci formuláře s jinými položkami, jako je tlačítko zprávy nebo tlačítko pro aktualizaci dat v tabulce. Ujistěte se, že s nimi formulář správně komunikuje a provádí potřebné kroky.

Pokud během testování zjistíte nějaké chyby nebo problémy související s fungováním formuláře, je třeba začít s jejich laděním. Chcete-li to provést, použijte ladicí nástroje VBA Excel.

Ladicí nástroje vám umožňují provádět kód krok za krokem, ovládat hodnoty proměnných, nastavovat body zastavení a sledovat provádění kódu a opravovat chyby.

Při ladění formuláře je důležité zajistit, aby byl kód správně proveden a všechny proměnné získávají správné hodnoty. Pokud se vyskytnou chyby, je třeba je odhalit a opravit.

Po dokončení ladění je důležité formulář znovu otestovat, abyste se ujistili, že funguje bez chyb a všechny funkce fungují správně.

Testování a ladění formy umožní odstranit chyby a zajistit jejich nezaměnitelný provoz. Fáze testování a ladění jsou důležitou součástí procesu vytváření vlastní formy a pomáhají zajistit její správné fungování.