Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... UserForm (Formulář) a jeho použítí ve VBA...
Než začneme pracovat s ovládacími prvky musíme vytvořit formulář do kterého je můžeme umístit. Karta Vývojář - Visual Basic. Menu Insert - UserForm.
Seznam základních vlastností prvku UserForm (Formulář). 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) UserForm1.
Vrací nebo nastavuje barva pozadí objektu TextBox.
UserForm1.BackColor = RGB(255, 128, 128)
BarvaPozadi = UserForm1.BackColor
Vrací nebo nastavuje barvu okrajů. Pokud není nastaven okraj tak se změna barvy neprojeví.
UserForm1.BorderColor = RGB(254, 127, 127)
Vrací nastavení nebo změní nastavení okrajů.
fmBorderStyleNone - 0 - nemá viditelný okraj
fmBorderStyleSingle - 1 -
UserForm1.BorderStyle = fmBorderStyleSingle
Poznámka ignoruje se pokud je vlastnost SpecialEffect = none
Varcí Text na objektu Label (Popis) nebo ho nastaví.
UserForm1.Caption = "office.lasakovi.com - Pavel Lasák"
AktualniTextVUserForm = UserForm1.Caption
Specifikuje akci, která se má provést, když uživatel opustí poslední ovládací prvek ovládacího prvku Frame.
UserForm1.Cycle = fmCycleCurrentForm
UserForm1.Cycle = 0
Určuje počet pixlů, které se odkládají pro skrytou (off-screen) paměť při vykreslování rámečku. Celé číslo od 16,000 do 1,048,576, které vyjadřuje maximální počet pixlů, které objekt může skrytě vykreslovat.
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.
UserForm1.Enabled = True
UserForm1.Enabled = False
EnabledNastaveni = UserForm1.Enabled
Ukončit Alt + F4.
Vrací nastavení fontu nebo nastaví požadovaný fontu (velikost, typ, ...).
UserForm1.Font.Italic = True
Varcí nastavení nebo definuje barvu popředí objektu tj. v našem případě jakou barvu bude mít text.
UserForm1.ForeColor = RGB(255, 255, 0)
Vrací výšku formuláře nebo jeho výšku nastaví.
UserForm1.Height = 28
Vyska = UserForm1.Height
Odkaz do nápovědy ve formátu Microsoft Windows pro konkretní objekt
Určuje, zda mají zůstat posuvníky viditelné i v případě, že nejsou potřeba.
UserForm1.KeepScrollBarsVisible = fmScrollBarsBoth
Umístění objektu od levého okraje. Nebo zjištění jak je umístěn objekt.
umistenileft = UserForm1.Left
UserForm1.Left = 12
Přiřazení ikony por objekt
UserForm1.MouseIcon = LoadPicture("c:\mojeIkonka.ico")
Vrací typ ukazatele myši, nebo nastaví ukazatel myši. Hodnoty jsou:
UserForm1.MousePointer = fmMousePointerHelp
Nastavení obrázek na pozadí.
UserForm1.Picture = LoadPicture("c:\mujObrazek.bmp")
Poznámka: Nutno zadat správný název a umístění obrázku.
Udává umístění obrázku v pozadí. Nebo vrací nastavení této vlastnosti.
UserForm1.PictureAlignment = fmPictureAlignmentTopRight
Udává, jak se v ovládacím prvku, formuláři nebo stránce zobrazí obrázek v pozadí.
Frame1.PictureSizeMode = fmPictureSizeModeStretch
Poznámka: Nejprve musí být nahrán nějaký obrázek.
Umožňuje uspořádat obrázek na formuláři nebo stránce jako dlaždice.
UserForm1.PictureTiling = True
Určuje, zda ovládací prvek, formulář nebo stránka mají svislý posuvník, vodorovný posuvník nebo oba posuvníky.
UserForm1.ScrollBars = fmScrollBarsBoth
Udává celkovou výšku oblasti v bodech, kterou lze zobrazit pomocí posuvníků daného ovládacího prvku, formuláře, nebo stránky.
UserForm1.ScrollHeight = 300
Udává vzdálenost v bodech, levého okraje viditelného formuláře od levého okraje logického formuláře, stránky nebo ovládacího prvku. Viz ScrollTop.
UserForm1.ScrollLeft = 30
Udává vzdálenost v bodech, horního okraje viditelného formuláře od horního okraje logického formuláře, stránky nebo ovládacího prvku. Jakoby posune formulář (pokud jsou povoleny posuvníky)
UserForm1.ScrollTop = 30
Poznámka: Při testování povolte posuvníky ScrollBars a zvětšte plochu ScrollHeight.
Udává celkovou šířku oblasti v bodech, kterou lze zobrazit pomocí posuvníků daného ovládacího prvku, formuláře, nebo stránky.
UserForm1.Scrollwidth = 300
Vrací nebo určuje speciální efekty objektu.
UserForm1.SpecialEffect = fmSpecialEffectFlat
UserForm1.SpecialEffect = 6
StavSpecialEfekt = UserForm1.SpecialEffect
Vrátí nebo nastaví hodnotu určující umístění formuláře UserForm při prvním zobrazení.
UserForm1.StartUpPosition = WindowsDefault
Doplňkové informace o objektu.
UserForm1.Tag = "office.lasakovi.com"
Umístění objektu od horní okraje. Nebo zjištění jak je umístěn objekt.
umistenitop = UserForm1.Top
UserForm1.Top = 12
Vrátí boolovskou hodnotu, která určuje, jestli se tlačítko What's This objeví na panelu objektu UserForm. Je možné ji čísti pouze za běhu.
UserForm1.WhatsThisButton = True
Vrátí boolovskou hodnotu, která určuje, jestli kontextová nápověda používá vyvolávací okno nápovědy systému Windows 95 nebo hlavní okno nápovědy. Je možné ji číst pouze za běhu.
UserForm1.WhatsThisHelp = True
Vrací šířku objektu nebo jeho výšku nastaví.
UserForm1.Width = 110
Sirka = UserForm1.Width
Nastane při změně hodnoty vlastnosti Zoom (přiblížení/zvětšení).
UserForm1.Zoom = 110
Hotový příklad ke stažení: Formulář UserForm - ukázky použití
Obrázek - pro testy s formulářem.
Popis vlastnosti objektu UserForm1 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: 18.01.13 13:24
Nevím, kde je lepší místo na můj dotaz. Jde při frame1.enabled "zamlžit" všechny objekty uvnitř a ne jenom název rámu? Děkuji
Přidáno: 18.01.13 16:06
To Honza: Nevím o tom. Osobně "zamlžuji" každý objekt zvláť.
Přidáno: 25.01.13 10:02
Každý objekt zvlášť, například takto:
Dim y As Control
For Each y In Frame1.Controls
y.Enabled = True
Next
Nic lepšího jsem nenašel.
Přidáno: 25.01.13 16:58
To Honza: Také jsem hledal a nic nenašel (za těch pár let jsem to potřeboval jen jednou) řekl bych, že jede o nestandartní požadavek.
Přidáno: 28.01.13 15:27
Nejdou ovládat prvky hromadně, když se udělá z nich skupina (group)? Ale nenašel jsem ve VBA okně ani název tý skupiny. Pak by bylo třeba Group1.enabled = false.
Přidáno: 03.03.14 17:33
Potřebovala bych poradit, zda je možné prostřednictvím kódu konkrétního userformu přistupovat např. k textboxům z jiných userformů. Mám soustavu provázaných userformů pomocí tlačítek "dále" a "zpět" a potřebuji aby se texty ze všech textboxů, které jsou na všech userformech umístěny smazaly až ve chvíli, kdy na posledním stisknu tlačítko "dokončit". Díky moc
Přidáno: 04.12.14 14:48
Chtěl bych se zeptat, jestli je možné přes vlastnosti UserFormu nastavit nějak pořadí jednotlivých oken stejně jako mohu měnit pořadí prvků (label,image...) ve formuláři? Předem díky.
Přidáno: 14.02.15 17:53
Samozřejmě že lze. Do procedury tlačítka Dokončit vložte např. takto: With userform1 . Textbox1 = "" . Textbox2 = "" End With With userform2 . Textbox1 = "" . Textbox2 = "" End With
Přidáno: 14.02.15 19:49
Kód trochu přehledněji
With Userform1
. TextBox1 = ""
. TextBox2 = ""
End With
With UserForm2
. TextBox1 = ""
. TextBox2 = ""
End With
Přidáno: 16.02.15 07:27
zdravim .. prosim o pomoc s problémem .. vytvarim aplikaci v VBA .. mam formular ve kterym mam spoustu textboxů .. tyto textboxy mají zobrazovat obsah bunek v List2 .. makrem menim obsah bunek Listu 2 .. při spustenem formulari .. obsah texboxů se ovšem nemeni .. potrebuji nejak zjistit .. jak obnovovat .. (refreshovat) formular .. tak aby po kazde zmene v bunce se hned projevila zmenou v prislusnem textboxu .. chci se vyhnout tomu aby mel uživatel pristup k bunkam . .hned po zapnuti se aplikace zminimalizuje a dal se pracuje jen ve formulářích .. je to kvul iaplikaci .. kam mají ruzni uzivatele pristup pomoci hesla .. prosim o pomoc sem v koncích .. vse mam vymyslene a napsane . .ale furt nevim jak obnovit ten obsah texboxů ..
Přidáno: 20.02.15 13:45
Zdravím, předpokládám, že makro, jež provádí operace, které pak mění hodnoty buněk ve Vašem listu,spouštíte z daného userformu např. tlačítkem (CommandButton). Pak by mělo stačit do procedury tohoto tlačítka, resp. makra, jež mění hodnoty v buňkách, zařadit přečtení nových hodnot a zobrazení v textboxech např. takto:
V případě, že je před minimalizací zobrazen list2
TextBox1 = Range("B2")
V případě, že je zobrazen jiný list a hodnoty chcete číst z buněk listu2
TextBox1 = Sheets("list2").Range("A2")
Přidáno: 05.03.15 11:39
hi I made an excel advanced userform. You can view :http://adf.ly/138E1W
Přidáno: 08.04.15 15:03
Dobrý den. Pokud se ptám na trivialitu, omlouvám se . Jsem samouk a pracuji v podstatě jen na základě těchto stránek (výborných!). Jak zjistím ve VBA, že formulář byl ukončen křížkem a nikoli mnou dodaným tlačítkem OK? Dík a stálé zdraví přeju
Přidáno: 05.09.15 19:56
Dobrý den. Mám takový dotaz. Jde ve VBA zjistit aktuální velikost formuláře, aplikace a celé obrazovky? Děkuji.
Přidáno: 11.12.15 15:31
Existuje nejaký príkaz ktorým zistím či je userform aktivny alebo nie? ďakujem
Přidáno: 17.08.16 12:08
Dobrý den. Nemáte někdo zkušenosti se zmizením formuláře z paměti, tzn. že ho nelze vůbec zobrazit ani v prostředí VBA? Díky
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 |