Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... ComboBox (Výběrové pole) a jeho použítí ve formuláři za pomocí VBA...
Karta Vývojář - Visual Basic. Menu Insert - UserForm. Z Toolboxu vybereme ComboBox.
Seznam základních vlastností prvku ComboBox (Výběrové pole). Okno vlastností můžeme zobrazit klávesou F4.
Pojmenování prvku (můžeme změnit). Ve kódech se pak budeme na tento prvek odkazovat jeho jedinečným názvem. V našem příkladě je (Name) ComboBox1.
Pozor: Název prvku se musí změnit před psaním kódu. Když dojde ke změně názvu po napsání VBA kódu jeho odkaz se nezmění.
Specifikuje, zda mění objekt automaticky velikost v souladu se svým celým obsahem. Pokud mění tak velký text zvětší objekt.
Hodnota (True False)
ComboBox1.AutoSize = False
AutosizeStav = ComboBox1.AutoSize
Specifikuje, zda se vyvolá automatický tabelátor, jakmile uživatel vloží maximální přípustný počet znaků do ovládacího prvku. Případně vratí nastavení tohoto parametru. Hodnota TRUE, FALSE. Výchozí nastavení FALSE.
Specifikuje, zda se má jako základní jednotka pro rozšíření výběru používat slovo nebo znak
Vrací nebo nastavuje barva pozadí objektu TextBox.
ComboBox1.BackColor = RGB(255, 128, 128)
BarvaPozadi = ComboBox1.BackColor
Vrací nebo nastavuje styl pozadí objektu Label.
fmBackStyleTransparent (0) Pozadí je průhledné.
fmBackStyleOpaque (1) Pozadí je neprůhledné (výchozí nastavení).
ComboBox1.BackStyle = fmBackStyleTransparent
Vrací nebo nastavuje barvu okrajů. Pokud není nastaven okraj tak se změna barvy neprojeví.
ComboBox1.BorderColor = RGB(254, 127, 127)
Vrací nastavení nebo změní nastavení okrajů.
fmBorderStyleNone - 0 - nemá viditelný okraj
fmBorderStyleSingle - 1 -
ComboBox1.BorderStyle = fmBorderStyleSingle
Poznámka ignoruje se pokud je vlastnost SpecialEffect = none
Identifikuje zdroj dat v rozbalovacím seznamu.
Specifikuje počet sloupců, které se zobrazí v poli seznamu nebo rozbalovacím seznamu.
Nastavíme-li vlastnost ColumnCount na 0, zobrazí se nula sloupců.Hodnota -1 se zobrazí všechny dostupné sloupce.
ComboBox1.ColumnCount = 2
ComboBox1.ColumnCount = 0
ComboBox1.ColumnCount = -1
Specifikuje šířku jednotlivých sloupců rozbalovacího seznamu (pro více sloupců). K oddělení údajů o jednotlivých sloupcích použijeme středník (;). Nebo zobrazí jak jsou sloupce rozděleny. Prázná hodnota je nastaveno výchozí.
ComboBox1.ColumnWidths = "30pt; 70pt; 40pt"
RozlozeniSloupce = ComboBox1.ColumnWidths
Identifikuje kde se budou ukládat data, která se vloží přes vlastnost Value. Případně vratí kde se budou data ukládat.
ComboBox1.ControlSource = "a1"
HodnotaVBunce = ComboBox1.ControlSource
Bublinková nápověda. Zobrazí se při najetí nad objekt
ComboBox1.ControlTipText = "Můj text v bublinkové nápovědě."
ControlTipText = ComboBox1.ControlTipText
Stanoví, jestli systém umožní funkci přetažení. fmDragBehaviorDisabled - 0 - Neumožňuje akci přetažení (výchozí nastavení). fmDragBehaviorEnabled - 1 - Umožňuje akci přetažení.
Specifikuje symbol, který se zobrazí na tlačítku pro rozbalení ComboBox.
ComboBox1.DropButtonStyle = fmDropButtonStyleEllipsis
Určuje, zda se může ovládací prvek stát aktivním a odpovídat na události, generované uživatelem. Nebo specifikuje jak je tato vlastnost aktuálně nastavena.
ComboBox1.Enabled = True
EnabledNastaveni = ComboBox1.Enabled
Určuje chování při výběru po vstupu do ComboBox (Výběrové pole). Nebo vrací jak je tato vlastnost nastavená.
Vrací nastavení fontu nebo nastaví požadovaný fontu (velikost, typ, ...).
ComboBox1.Font.Italic = True
ComboBox1.Font.Size = 22
ComboBox1.Font.Bold = True
ComboBox1.Font = "Times New Roman"
velikostFontu = ComboBox1.Font.Size
typFontu = ComboBox1.Font
FontJeKurziva = ComboBox1.Font.Italic
Varcí nastavení nebo definuje barvu popředí objektu tj. v našem případě jakou barvu bude mít text.
ComboBox1.ForeColor = RGB(255, 255, 0)
BarvaPopredi = ComboBox1.ForeColor
Vrací výšku objektu nebo jeho výšku nastaví.
ComboBox1.Height = 28
Vyska = ComboBox1.Height
Odkaz do nápovědy ve formátu Microsoft Windows pro konkretní objekt ComboBox (Výběrové pole).
Určuje, zda má zůstat vybraný text zvýrazněn i v případě, že se prvek není aktivním. Hodnoty True (výchozí) Neaktivní text není zvírazněn. FALSE - zůstane zvýrazněn.
ComboBox1.HideSelection = False
Specifikuje výchozí režim pro zpracování IME (Input Method Editor) daného ovládacího prvku.
Umístění objektu od levého okraje. Nebo zjištění jak je umístěn objekt.
umistenileft = ComboBox1.Left
ComboBox1.Left = 12
Specifikuje maximální počet řádků, jež se v seznamu zobrazí. Překračuje-li počet položek v seznamu hodnotu vlastnosti ListRows, zobrazí se na pravém okraji seznamu nebo rozbalovacího seznamu posuvník. Případně rozbrazí aktuálně nastavenou hodnotu.
ComboBox1.ListRows = 4
PocetRadku = ComboBox1.ListRows
Specifikuje vzhledové vlastnosti seznamu v poli ComboBox. fmListStylePlain - 0 - Vypadá jako běžný seznam se zvýrazněným pozadím položek. fmListStyleOption - 1 - Zobrazí tlačítka s možností vícenásobného výběru (výchozí nastavení).
ComboBox1.ListStyle = fmListStylePlain
Specifikuje šířku seznamu v poli ComboBox. Chceme-li zobrazit seznam o více sloupcích, zadáme dostatečně velkou hodnotu, která umožní zobrazit všechny sloupce. Nebo v ColumnWidths upravíme šířky jednotlivých zobrazovaných sloupců.
ComboBox1.ListWidth = "10pt"
Určuje, zda lze ovládací prvek editovat. Případně vrací stav této vlastnosti. Nabývá hodnot TRUE (nelze editovat), FALSE (lze editovat, jedná se o vychozí nastavení).
ComboBox1.Locked = TRUE
ComboBox1.Locked = FALSE
Vrací nebo nastavuje hodnotu, která udává, jak ListBox prohledává svůj seznam v souladu s tím, jak uživatel vkládá hodnotu.
ComboBox1.MatchEntry = FmMatchEntryNone
Určuje, zda hodnota, zadaná do textové části ComboBox musí odpovídat položce v existujícím seznamu ovládacího prvku. True - Zadaný text musí odpovídat existující položce seznamu. False - Zadaný text se může lišit od všech existujících položek seznamu (výchozí nastavení).
ComboBox1.MatchRequired = True
Specifikuje maximální počet znaků, které může uživatel zadat do ComboBox (Výběrové pole) nebo vrací tento počet znaků. (0 není zadáno)
ComboBox1.MaxLength = 5
maxPocetZnaku = ComboBox1.MaxLength
Přiřazení ikony por objekt
ComboBox1.MouseIcon = LoadPicture("c:\mojeIkonka.ico")
Vrací typ ukazatele myši, nebo nastaví ukazatel myši. Hodnoty jsou:
ComboBox1.MousePointer = fmMousePointerHelp
Specifikuje zdroj, který poskytuje seznam pro pole typu ComboBox. Oblast bunek urcuje zdrojova data - list1!a1:j4
ComboBox1.RowSource = "list1!a1:j4"
Pro vymazání
ComboBox1.RowSource = ""
Určuje, zda může uživatel vybrat řádek textu klepnutím na oblast vlevo vedle textu.
Udává, kdy se má zobrazit rozbalovací tlačítko pro ComboBox.
ComboBox1.ShowDropButtonWhen = fmShowDropButtonWhenFocus
Vrací nebo určuje speciální efekty objektu.
ComboBox1.SpecialEffect = fmSpecialEffectFlat
ComboBox1.SpecialEffect = 6
StavSpecialEfekt =ComboBox1.SpecialEffect
Jak může uživatel volit nebo nastavovat hodnotu ovládacího prvku.
Vrací nebo udává pozici jednoho objektu v pořadí karet formuláře.
ComboBox1.TabIndex = 0
Určuje, zda se může objekt stát aktivním, když na něj uživatel přejde klávesou tabelátor. Nabývá hodnot TRUE, FALSE. True - Přístup TAB je možný (výchozí nastavení). False - Při použití tabelátoru se objekt vynechá.
Doplňkové informace o objektu.
Vrací nebo nastavuje text v ovládacím prvku TextBox.
ComboBox1.Text = "Nastavíme náš text"
NasText = ComboBox1.Text
ComboBox1.Text = ""
Poznámka: Výchozí hodnotou je řetězec nulové délky ("").
Zaroznání textu. Vpravo, vlevo, na střed. Nabývá hodnot:
ComboBox1.TextAlign = fmTextAlignCenter
ComboBox1.TextAlign = 1
jakZarovnano = ComboBox1.TextAlign
TextColumn - urcuje, ktery sloupec bude po vyberu zobrazen:
Combobox1.TextColumn = 0
Combobox1.TextColumn = 2
Umístění objektu od horní okraje. Nebo zjištění jak je umístěn objekt.
umistenitop = ComboBox1.Top
ComboBox1.Top = 12
Nastavuje nebo vrací položku, umístěnou v nejvyšší pozici seznamu. Poznámka: Je-li seznam prázdný nebo není-li zobrazen, vrací hodnotu –1.
Udává stav nebo obsah daného ovládacího prvku.
ComboBox1.Value = "Muj jiný text"
MujValue = ComboBox1.Value
Nastavuje viditelnost objektu, nebo zobrazuje jaký stav má objekt. Nabývá hodnot TRUE (viditelný - výchozí nastavení), FALSE (neviditelný).
ComboBox1.Visible = False
ComboBox1.Visible = True
Vrací šířku objektu nebo jeho výšku nastaví.
ComboBox1.Width = 110
Sirka = ComboBox1.Width
Hotový příklad ke stažení: Formulář ComboBox (Výběrové pole) - ukázky použití
Popis vlastnosti objektu ComboBox máme za sebou :)
Článek byl aktualizován: 19.09.2020 11:06
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.
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ů.
Přidáno: 02.11.11 12:34
Dobrý den, lze do názvu prvku zařadit proměnou. Při inicializaci formuláře se mi nechce vypisovat všechny cmb, když se jejich název lyší pouze číslem na konci. Děkuji
Přidáno: 02.11.11 16:07
To Fik: Přesně nerozumím otázce. Každý prvek musí mít svůj jedinečný název (Name) např. ComboBox1. Nelze ve Vašem skriptu použít cyklus?
Přidáno: 18.09.12 09:31
Dobrý den, mám takový problém, mám v tabulce data, ale když je chci ve formuláři zobhrazit tak, bych se rád zeptal, jak ve formuláři, "ComboBox" uděláme to, že se nám při výběru hodnot zobrazí více hodnot najednou, mám na mysli.. 2 sloupce a více.. děkuji az rychlou odpověď. :-)
Přidáno: 18.09.12 16:31
To Martin: Nastavit pokud je ComboBox ve formulari VBA
ComboBox1.ColumnWidths = "30pt; 70pt;"
ComboBox1.RowSource = "list1!a1:b4"
ComboBox1.ControlSource = "a1"
Pro ComboBox v listě jako ActiveX
ListFillRange: List1!$A$7:$B$12
BoundColumn: 2
ColumnCount: 2
LinkedCell: A1:B1
ColumnWidths: 50 pt;20 pt
Rychleji to nešlo ;-)
Přidáno: 21.09.12 06:20
Dobrý den. Jako zdroj řádků pro Combobox využívám oblast buněk formátovaných jako datum ve tvaru dd.mm.rrrr, při rozbalení Comboboxu se tyto zobrazí normálně jako datum. Při výběru se však toto zobrazení v Coboboxu změní na číslo. Například 1.9.2012 se v Combobxu změní na číslo 41153. Jak na to? Děkuji
Přidáno: 21.09.12 16:25
To Vladimír: Protože datum je v Excelu reprezentován jako číslo. tj. číslu 41153 odpovídá datum 1.9.2012
Přidáno: 28.09.12 12:51
Dobrý deň! Private Sub ComboBox1_Change() ComboBox1.RowSource = "Hárok1!b6:b25" ComboBox1.RowSource = "" End Sub Podľa vášho vzoru som vyplnil príkaz ale zoznam sa mi neobjavuje. Viete mi poradiť v čom robím chybu? dakujem Lubo
Přidáno: 28.09.12 17:42
To Luboš: Smažte
ComboBox1.RowSource = ""
Tento příkaz zase vše vymaže. V ukázkách jsou různé možnosti zadávání. V článku jsem upravi ať jsou ukázky jasnější.
Přidáno: 25.01.13 13:25
Dobrý den. Jako zdroj řádků pro Combobox ve formulari VBA využívám oblast buněk: list1!a1:d180. ComboBox1.ColumnCount = 4. Jak udělat, aby se všechny čtyři sloupce vložily do tabulky? Děkuji.
Přidáno: 11.06.14 21:30
Ahoj, lze se pomocí comboboxu odkazovat na jiné bunky, jako např. při hypertex.odkazu.? Př. Budu mít ukotvený první řádek kde bude combobox a v comboboxu vyberu název nějaké tabulky a tímto výběrem se na ni dostanu. nebo nějaký jiný způsob existuje. Díky Pavel.K psr@seznam.cz
Přidáno: 29.08.14 14:01
Díky za bezva stránky. Mám stejný problém jako Tomáš Vyhnálek "Jako zdroj řádků pro Combobox ve formulari VBA využívám oblast buněk: list1!a1:d180. ComboBox1.ColumnCount = 4. Jak udělat, aby se všechny čtyři sloupce vložily do tabulky? " Díky moc za tip Eda
Přidáno: 29.01.15 10:20
Dobrý den, potřebuji poradit. Mám vstup dat do CMB z dynamického pole, ale chtěl bych, aby tam šel dát i jiný, vlastní text. Předem děkuji za pomoc
Přidáno: 15.05.15 13:30
Dobrý den a díky za skvělé stránky! Jako většina tady i já mám problém :-) a prosím o radu. V Excelu mám 5 sloupců. Mám ve formuláři 2 ComboBoxy a potřebuji toto: První ComboBox má na výběr z 5ti položek, které značí 14. až 5. sloupec. Výběr položky by měl zařídit, které položky se budou nabízet v ComboBoxu. Tedy: v CB1 vyberu položku značící 3. sloupec a CB2 by mi měl nabídnout k výběru položky obsažené ve sloupci č.3 . Děkuji předem za radu!
Přidáno: 15.05.15 13:52
překlep... značí 1. až 5. sloupec
Přidáno: 19.05.15 11:16
Tak prozatím jsem to vyřešil takto, než dojdu na něco elegantnějšího: Private Sub ComboBox_barva_site_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If ComboBox_profil_site = "OK-Pevná" Then ComboBox_barva_site.RowSource = "Vstupni_data!D2:D9" ElseIf ComboBox_profil_site = "OK-LEM-R50" Then ComboBox_barva_site.RowSource = "Vstupni_data!E2:E9" ElseIf ComboBox_profil_site = "OK-EX-LEM-582" Then ComboBox_barva_site.RowSource = "Vstupni_data!F2:F10" ElseIf ComboBox_profil_site = "DV-Standard" Then ComboBox_barva_site.RowSource = "Vstupni_data!G2:G8" ElseIf ComboBox_profil_site = "DV-EX" Then ComboBox_barva_site.RowSource = "Vstupni_data!H2:H10" Else ComboBox_barva_site.RowSource = "" End If End Sub
Přidáno: 19.05.15 11:34
Private Sub ComboBox_barva_site_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If ComboBox_profil_site = "OK-Pevná" Then
ComboBox_barva_site.RowSource = "Vstupni_data!D2:D9"
ElseIf ComboBox_profil_site = "OK-LEM-R50" Then
ComboBox_barva_site.RowSource = "Vstupni_data!E2:E9"
ElseIf ComboBox_profil_site = "OK-EX-LEM-582" Then
ComboBox_barva_site.RowSource = "Vstupni_data!F2:F10"
ElseIf ComboBox_profil_site = "DV-Standard" Then
ComboBox_barva_site.RowSource = "Vstupni_data!G2:G8"
ElseIf ComboBox_profil_site = "DV-EX" Then
ComboBox_barva_site.RowSource = "Vstupni_data!H2:H10"
Else
ComboBox_barva_site.RowSource = ""
End If
End Sub
To o těch HTML značkách mělo být výš :-)
Přidáno: 12.08.15 15:44
Dobrý den, chci se zeptat, zda-li jste nenarazil při své mnoha leté zkušenosti na problém s comboboxem, kdy potřebuju změnit metodu "drop down" na "drop up". To znamená, aby se combobox neotevíral dolů, ale nahoru, lze-li to vůbec udělat. Děkuji za odpověď.
Přidáno: 24.04.16 19:35
To Luboš: Nevím o tom, že to jde, možná půjde v novém Excelu.
Přidáno: 26.06.16 21:29
Prosím o radu. Mám několik desítek Comboboxů a všechny chci naplnit stejnými daty. Názvy jsou Combobox1, Combobox2, Combobox3 atd. Potřebuji je dát do cyklu. Něco ve smyslu Combobox & promenna. Věděl byste někdo jak na to?
Přidáno: 11.07.16 17:45
Dobry den, mam dotaz. Mam List1, prvni radek jsou nazvy sloupcu. List2 data,potom jsem udelal form pro vkladani dat. Ten obsahuje Textboxi a comboboxi,pri potvrzeni/pridani se na List1 pridají data do sloupců jak mam nastavene, vse je OK,ale potreboval bych mit seznam (combobox) kde budou napsane napr. adresy(ve zkratce) napr: Škoda, Honda, Ford. Potreboval bych pri najeti na Škoda aby se z Listu2 pridala adresa na List1 na tri pole. Priklad: vyberu v comboboxu Škoda dam odeslat a z List2 bunka A1,A2,A3 se prida na List1 do A1 do A1, A2 do A2 a A3 do A3.Nevim zda jsem to popsal spravne,kdyz tak mohu zaslat soubor jak to mam ted.Aspon nejaky odkaz kde bych nasel informace. Dekuji
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 |