Při práci s UserForm v aplikaci VBA Excel je často nutné odstranit standardní ovládací prvek-křížek, který uzavírá tvar. To může být užitečné, když je třeba zabránit uživateli v náhodném uzavření formuláře nebo zabránit nežádoucím akcím.
Odstranění křížku s UserForm je dosaženo změnou vlastnosti ControlBox na významu False. Poté bude tlačítko pro zavření okna Deaktivováno a pro uživatele není k dispozici.
Je však třeba vzít v úvahu, že při odstraňování křížku z UserForm je nutné stanovit alternativní způsob uzavření formuláře, například přidáním tlačítka "Zavřít" nebo poskytnutím jiného způsobu ukončení formuláře.
Poznámka: změna vlastnosti ControlBox platí pouze pro UserForm a neovlivňuje standardní okna aplikace Excel.
Co je VBA Excel
VBA Excel poskytuje vývojářům možnost automatizovat duplicitní úkoly, provádět složité výpočty, vytvářet vlastní formuláře a rozhraní a komunikovat s jinými aplikacemi a databázemi.
Použití VBA v Excelu otevírá širokou škálu možností pro automatizaci a optimalizaci pracovních postupů. To umožňuje výrazně urychlit rutinní operace, zlepšit kvalitu a přesnost práce a zvýšit produktivitu a efektivitu práce s daty.
Hlavními prvky VBA jsou objekty, metody a vlastnosti. Objekty představují různé prvky aplikace Excel, jako jsou knihy, listy, buňky a grafy. Metody umožňují provádět akce s objekty a vlastnosti poskytují přístup k jejich atributům a hodnotám.
Psaní kódu na VBA Excel může být pro začátečníky náročné, ale po prozkoumání základních konceptů a programovacích principů je mnohem snazší vytvářet výkonná makra a vlastní funkce.
Odstranění křížku z UserForm v aplikaci VBA Excel vám umožní vytvořit profesionálnější a přizpůsobitelnější uživatelské rozhraní, s výjimkou možnosti omylem Zavřít formulář.
Co je UserForm?
UserForm poskytuje široké možnosti pro vytváření uživatelského rozhraní aplikace Excel, což umožňuje lepší vizuální zobrazení a funkčnost vašich Maker a aplikací. Můžete upravit uspořádání prvků, stylizovat pozadí, změnit barvy, upravit rozměry a tvar okna a také řídit chování prvků při interakci s nimi.
Pomocí UserForm můžete vytvářet různé formuláře, jako jsou formuláře pro zadávání dat, formuláře nastavení, formuláře sestav a další. Díky možnosti interaktivního uživatelského zážitku může UserForm výrazně zvýšit použitelnost Maker a automatizovaných úloh v Excelu.
Odstranění křížku s UserForm
Když vytvoříme UserForm v aplikaci VBA Excel, ve výchozím nastavení má v pravém horním rohu křížek, který umožňuje uživateli Zavřít formulář. V některých případech však může být nutné odstranit tento křížek, aby uživatel nemohl zavřít formulář bez zvláštního příkazu.
Chcete-li odstranit křížek z UserForm, musíte provést několik kroků:
| Krok | Akce |
|---|---|
| 1 | Otevřete modul kódu pro UserForm kliknutím pravým tlačítkem na něj a výběrem "Zobrazit kód". |
| 2 | Vložte následující kód do modulu: |
| Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu as Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long Private Const MF_BYPOSITION As Long = &H400& Private Const mf_remove as long = &H1000& private const Wm_syscommand as long = &H112& private const sc_close As Long = &Hf060& private Sub Userform_initialize() Dim hsysmenu as long Dim Lcnt As long Hsysmenu = Getsystemmenu(mě.hwnd, 0) lCnt = GetMenuItemCount(hSysMenu) RemoveMenu hSysMenu, lCnt - 1, MF_BYPOSITION Or MF_REMOVE Me.Caption = "UserForm bez křížku" End Sub | |
| 3 | Uložte a zavřete modul kódu. |
Nyní, při inicializaci UserForm, bude křížek odstraněn a uživatel nebude moci Zavřít formulář kliknutím na něj.
Nezapomeňte také změnit název UserForm pomocí vlastnosti Me.Co splňuje vaše požadavky.
Problém s křížkem
UserForm v Excelu má ve výchozím nastavení v pravém horním rohu křížek, který umožňuje zavřít okno. Někdy však dojde k situaci, kdy je nutné tuto funkci vypnout, aby se zabránilo náhodnému zavření okna. To může být užitečné, například pokud okno obsahuje důležitá data, která mohou být ztracena při zavírání.
Odstranění křížku z UserForm je možné pomocí VBA kódu. Chcete-li to provést, musíte použít vlastnost ControlBox a nastavit jeho hodnotu ve False . Například:
Private Sub UserForm_Initialize()Me.ControlBox = FalseEnd Sub
Po přidání tohoto kódu do modulu UserForm bude křížek skrytý a uživatel s ním nebude moci zavřít okno. Je však třeba vzít v úvahu, že to nezabrání zavírání okna jinými metodami, jako je stisknutí klávesy "Esc".
Kromě toho stojí za zvážení, že deaktivace křížku může být omezena na určitá bezpečnostní omezení nebo zásady organizace. Před použitím tohoto řešení byste se proto měli ujistit, že neexistují žádné rozpory nebo omezení v jeho aplikaci.