Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-formulare » excel-vba-formular-ovladaci-prvky

Ovládací prvky - formuláře ve VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

jaké ovládací prvky můžeme používat ve formulářích MS Excelu. Hlavně ve spojení s VBA...

Úvod do ovládacích prvků

Seznam ovládacích prvků pro formuláře ve VBA Microsoft Excelu:

  • Label - Popis
  • TextBox - Textové pole
  • ComboBox - Pole se seznamem
  • ListBox - Seznam
  • CheckBox - Zaškrtavací políčko
  • OptionButton - Přepínač
  • ToggleButton - Přepínací tlačítko
  • Frame - Rámeček
  • CommandButton - Příkazové tlačítko
  • TabStrip - Karty
  • MultiPage - Vícenasobná stránka
  • ScrollBar - Posuvník
  • SpinButton - Číselník
  • Image - Obraz

Ukázka všech ovládacích prvků

MS Excel VBA - formulare - ovladaci prvky

Poznámka: Lze nainstalovat i další prvky, ale jejich kompatibilata při spuštění na jiném počítači je problematická. Proto se jimi v tomto článku nezabývám.

Výběr ovladacího prvku

Výběr konkretního prvků se provádí pomocí panelu nástrojů.

MS Excel VBA - formulare - ovladaci prvky
MS Excel VBA - formulare - ovladaci prvky

Label - (Popis)

Label (Popis) - se používá na formuláři pro zápis různých informací (popisný text, nadpis, název, jednotky, popisky, ...).

Poznámka: Label může být i obrázek.


Podrobněji v článku Label (Popis) ve formuláři VBA.

MS Excel VBA - formulare - ovladaci prvky

TextBox - Textové pole

TextBox (Textové pole) je ovládacím prvkem, který se používá nejčastěji k získání informace od uživatele (hodnota, velikost, věk, jméno, ...). Na druhou stranu může TextBox, podobně jako label zobrazovat různé informace (napříkald současný stav).


MS Excel VBA - formulare - ovladaci prvky

ComboBox - Pole se seznamem

ComboBox (Pole se seznamem) je ovládacím prvkem, ze kterého uživatel může vložit (vybrat) hodnotu z určeného (danného) seznamu.


MS Excel VBA - formulare - ovladaci prvky

ListBox - Seznam

ListBox (Seznam) zobrazuje seznam hodnot a umožňuje výběr jedné nebo více z nich.


Podrobnější článek v přípravě.

MS Excel VBA - formulare - ovladaci prvky

CheckBox - Zaškrtavací políčko

CheckBox (Zaškrtavací políčko) poskytuje volbu mezi dvěma hodnotami jako například Ano/Ne, True/False, Zapnuto/Vypnuto. Zaškrtnutím CheckBox, se v políčku CheckBox objeví křížek. U nezaškrtnutého CheckBox je hodnota (Ne, False, Vypnuto).


MS Excel VBA - formulare - ovladaci prvky

OptionButton - Přepínač

OptionButton (Přepínač) zobrazuje stav výběru prvku. Ovládací prvek OptionButton se používá k zobrazení, zda je vybrán jeden určitý prvek skupiny (tj. pouze jedná z možností.

Poznámka: Pro více nezávyslých možností se využívá ovladacího prvků Frame (Rámeček).


MS Excel VBA - formulare - ovladaci prvky

ToggleButton - Přepínací tlačítko

ToggleButton (Přepínací tlačítko) pro zobrazení zda je položky vybrána.


MS Excel VBA - formulare - ovladaci prvky

Frame - Rámeček

Frame (Rámeček) vytvoří skupinu ovládacích prvků, které spolu opticky i funkčně souvisejí. Využití například ve spojení s OptionButton - Přepínač, CheckBox - Zaškrtavací políčko). Například pro dotazníky, či seskupení souvisejících údajů (dodavatel, jeho adresa, IČO, ...)


Podrobnější článek v přípravě.

MS Excel VBA - formulare - ovladaci prvky

CommandButton - Příkazové tlačítko

CommandButton (Příkazové tlačítko) zahajuje, ukončuje nebo přerušuje akci. Například spuštění makra, procedury.

Poznámka: Na tlačítko CommandButton lze rovněž umístnit text, obrázek nebo obojí.


MS Excel VBA - formulare - ovladaci prvky

TabStrip - Karty

TabStrip (Karty) podobně jako Frame (Rámeček) lze do uspořádat do skupin logicky související prvky. Opticky vypadá na tento prvek velice dobře a zpřehlední práci se složitým formulářem.


Podrobnější článek v přípravě.

MS Excel VBA - formulare - ovladaci prvky

MultiPage - Vícenasobná stránka

MultiPage (Vícenasobná stránka) je užitečná při práci s velkým množstvím informací, které lze setřídit do několika kategorií.


Podrobnější článek v přípravě.

MS Excel VBA - formulare - ovladaci prvky

ScrollBar - Posuvník

ScrollBar (Posuvník) cituji z nápovědy Microsoftu: "Vrací nebo nastavuje hodnotu jiného ovládacího prvku, založeného na pozici v poli, které se posouvá."


MS Excel VBA - formulare - ovladaci prvky

SpinButton - Číselník

SpinButton (Číselník) - zvyšuje nebo snižuje hodnotu čísla. Při kliknutí se mění pouze hodnota SpinButton. SpinButton (Číselník) lze použít ke změně roku (měsíce, dne) v datu, k změně úrokové sazby, atd. SpinButton lze použít hodnot v určitém intervalu. SpinButton může být buď vodorovný nebo svislý.


MS Excel VBA - formulare - ovladaci prvky

Image - Obraz

Tento prvek zobrazí na formuláři obrázek. Například můžeme zobrazovat fotky výrobků, zaměstanců, ...). Prvek Image (Obrázek) umožňuje další práci s obázkem (ořiznutí, zmenšení, zvětšení). Neumožní změnit obrázek (průhlednost, barvu, ...). Podporuje (*.bmp, *.gif, *.ico, *.jpg, *.wmf).

Poznámka: Obrázek lze zobrazit i v Label (Popis). Label neumožní další práci s obrázkem (zvětšovaní, ořez, ...).


Podrobněji v článku Image (Obrázek) vlastnosti ve VBA.

Ke stažení

Hotový příklad ke stažení: Ovládací prvky formulářů soubor ve formátu *.xls

Závěrem

V tomto článku jsou souhrné informace o ovládacích prvcích formuláře pro VBA Excel. Jednotlivým ovládacím prvkům a jejich využití pomocí VBA se zabývám v následujících článcích.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Jakysek

Přidáno: 04.09.13 08:42

Zdravím všechny! Rád bych požádal o radu ohledně maker v XLS. Nějak se mi nedaří přijít na kloub následujícím věcem: Mám vytvořený dokument, který je jakýmsi seznamem zboží. Ten dokument vyplňuje pokaždé někdo jiný a při jeho spuštění by mělo vyskočit okno, kam by dotyčný vyplnil svoje jméno, jméno osoby co to kontrolovala a číslo seznamu, případně nějaké další údaje….aby to nemusel člověk zadávat ručně do jednotlivých buněk, ale vyplnilo by se to takto „samo“. Je možné někde najít makro, které by to umělo, případně, že bych si ho nějak upravil (pokusil se) ? A ještě by mi moc pomohla další rada: V daném dokumentu mám seznam zboží. U každého je ve sloupci A jeho stav SLOŽENO nebo NESLOŽENO. Pokud chci zjistit, které zboží nebylo složeno, použiji filtr a zakliknu NESLOŽENO (mám na to nahrané makro). Zobrazí se mi seznam zboží NESLOŽENO. Mám nahrané makro na vytištění celého zapsaného seznamu a potřeboval bych přidat makro na vytištění seznamu NESLOŽENO, tzn. kliknout na tlačítko TISKNI NESLOŽENÉ a seznam by se vytisknul. Snažil jsem se upravit makro na tisk všeho zboží, ale prostě se mi to nevede, nejde to. Bohužel ve VBA skoro neumím :( Co by bylo úplně super, ale nevím, jestli to je s použitím filtru vůbec reálné, kdyby se u zboží se stavem NESLOŽENÉ provedl součet kusů, případně i objem (jedná se o balení v litrech), prodejní cena atd. Budu rád, pokud mi někdo poradí, kde mám hledat např. návod, jak něco z mých dotazů vyřešit, případně pokud by někdo byl ochoten poradit přímo k věci, budu velmi vděčný (jakysek@sezam.cz). Moc bych se to chtěl naučit sám, ale zatím se to moc nevede. Děkuji všem a hezký den!

Ondra

Přidáno: 02.06.14 22:40

Je možné nějak jednoduše u dynamicky přidaného ovládacího prvku tento prvek přidat do třídy či skupiny, tak aby se dalo pracovat následně s celou skupinou? Například odstranění pro celou skupinu? Existují ve VBA něco jako třídy a podtřídy objektů či nějaká alternativa? Děkuji

Jan

Přidáno: 05.09.14 13:17

Dobrý den, zajímalo by mě, zda se dá propojit fotoaparát přímo s formulářem v excelu tak, abych viděl živý náhled a po vyfotografování se mi obrázek uložil do listu. Děkuji

Lucka

Přidáno: 17.11.14 10:54

Zdravím :) ráda bych použila ovládací prvek TabStrip přímo do listu nikoli v UserForm vyvolaného z listu tlačítkem. Dokázal by mi prosím někdo poradit jak poté nadefinovat skupině ovládacích prvků (TextBox, ComboBox), že patří pod tento TabStrip? Díky

Pavel K.

Přidáno: 07.09.15 01:00

Jedná se o prvek OCX. Lze nastavit UserForm aby NormaX1 neházela chybu a průbeh hodnot byl v TextBoxu? Private Sub NormaX1_MeasurementReady() Dim dat As Variant Dim stat As Variant Dim state As Long Dim lWork As Worksheet Dim lColor As Long Dim rng As Range Dim mSec As Double Dim excelParanoia As Double Rem Fix the situation the Measurement Ready come soon as Measurement Started If (IsEmpty(Work)) Then Exit Sub End If Rem Read data from ActiveX component dat = data() stat = States() state = NormaX1.GetMeasurementData(dat, stat) Rem Determine actual time mSec = Timer() excelParanoia = Date Excel97Paranoia **Work.Cells(DataRow, 1).value = excelParanoia# + (mSec / 86400#) If (AutoFit) Then ** Work.Columns(1).EntireColumn.AutoFit AutoFit = False End If Rem Determine state and color of cell, 0-normal, 1-underrange, 2-overrange, 3-under and overrange Rem 4-Not Available, 8-Undefined, 128-Cop Power Factor For i = 1 To num Select Case stat(i - 1) Case 0 lColor = 2 Case 1 lColor = 6 Case 2 lColor = 3 Case Else lColor = 8 End Select Excel97Paranoia *****With Work.Cells(DataRow, i + 1) ***** .value = dat(i - 1) ***** .Interior.ColorIndex = lColor ***** End With Next End Sub

Matěj

Přidáno: 09.10.15 19:15

Ahoj, mám listbox s cca 20 položkami a potřeboval bych vyřešit, jakým způsobem mohu provést zápis několika vybraných položek do jedné buňky (1.položka, 2.položka, 5.položka, ...). Trápím se s tím už druhý den a zatím jsem nepřišel na žádné řešení. Děkuji






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |