V programování VBA pro Excel je někdy potřeba nastavit kurzor na určitý prvek tvaru, jako je textové pole (TextBox). Kurzor umožňuje uživateli určit místo, kde chce zadat informace nebo provést jakoukoli operaci.
Nastavení kurzoru na TextBox může být užitečné, pokud potřebujete automaticky přesunout zaostření na konkrétní položku při otevření formuláře nebo po provedení určité akce. Můžete například nastavit kurzor na TextBox, který uživateli usnadní zadávání dat, aniž byste museli klikat myší na položku.
K instalaci kurzoru na TextBox se VBA Excel používá vlastnost SetFocus. Tato vlastnost umožňuje nastavit zaostření (a tedy kurzor) na určeném prvku tvaru. Chcete-li to provést, musíte se obrátit na správný TextBox a zavolat metodu SetFocus. Pokud je například název Textboxu "TextBox1", pak bude kód pro instalaci kurzoru vypadat následovně:
TextBox1.SetFocus
Po provedení tohoto příkazu bude kurzor nastaven na TextBox1 a uživatel bude moci okamžitě začít zadávat data do tohoto pole, aniž by na něj musel klikat myší.
VBA Excel: instalace kurzoru na TextBox
Ve Visual Basic for Applications (VBA) v Excelu vám instalace kurzoru na TextBox umožňuje programově nastavit vstupní zaměření na konkrétní textové pole. To je užitečné, když chcete automatizovat proces vyplňování Textboxu nebo poskytnout uživateli pohodlný způsob interakce s aplikací.
Chcete-li nastavit kurzor na TextBox v VBA, musíte nejprve definovat objekt TextBox, ke kterému chcete nastavit zaostření, a poté vyvolat jeho metodu SetFocus().
Níže je uveden příklad kódu, který ukazuje, jak nastavit kurzor na TextBox v VBA Excel:
Sub SetFocusOnTextBox()
Dim txtBox As Object
Set txtBox = Sheet1.TextBox1
txtBox.SetFocus
End Sub
V tomto příkladu deklarujeme proměnnou txtBox, do které zapíšeme objekt TextBox1 umístěný na listu Sheet1. Poté zavoláme metodu SetFocus () pro objekt txtBox, abychom nastavili vstupní zaostření na tento TextBox.
Po spuštění tohoto kódu bude kurzor automaticky nainstalován v TextBox1 na listu Sheet1 a uživatel bude moci začít zadávat text do tohoto pole okamžitě.
Instalace kurzoru na TextBox v aplikaci VBA Excel je velmi užitečná při vytváření vlastních formulářů, kde je zadávání dat do Textboxu nedílnou součástí práce s aplikací. Může být také použit ke zlepšení použitelnosti aplikací Excel, což uživatelům umožňuje rychlý přístup ke konkrétním Textboxům.
Upozorňujeme, že tento kód bude fungovat pouze v aplikaci Excel. Pokud chcete nastavit kurzor na TextBox v jiných aplikacích Office, jako je Word nebo PowerPoint, budete potřebovat podobný kód, ale pro příslušné objekty TextBox v těchto aplikacích.
Nyní máte představu, jak nastavit kurzor na TextBox v aplikaci VBA Excel. Pomocí této dovednosti automatizujte vyplňování Textboxu nebo poskytněte uživatelům uživatelsky přívětivé rozhraní pro zadávání dat ve vaší aplikaci Excel.
Příprava na práci
Přidání Textboxu do formuláře umožňuje uživateli zadat textové informace. Před nastavením kurzoru na TextBox musíte vytvořit TextBox a nakonfigurovat jeho vlastnosti.
Chcete-li vytvořit TextBox v Excelu VBA, musíte postupovat podle následujících kroků:
| Krok | Akce |
| 1 | Otevřete Visual Basic Editor (stiskněte Alt + F11). |
| 2 | Vložte nový UserForm (klikněte pravým tlačítkem myši na projekt VBA a vyberte Insert > UserForm). |
| 3 | Poklepáním na UserForm jej otevřete v režimu úprav. |
| 4 | Na panelu nástrojů pro kreslení vyberte TextBox a nakreslete jej na UserForm. |
| 5 | Na panelu vlastností nastavte požadované vlastnosti Textboxu, jako je Name a Caption. |
| 6 | Zavřete režim úprav UserForm. |
Jakmile je TextBox vytvořen a nakonfigurován, můžete na něj nastavit kurzor a aktivovat jej pro psaní textu. To se provádí pomocí metody SetFocus v kódu VBA.
Například následující kód nastaví kurzor na TextBox s názvem "TextBox1":
Sub SetCursorOnTextBox()UserForm1.TextBox1.SetFocusEnd Sub
Nyní, když víte, jak vytvořit TextBox a nainstalovat na něj kurzor, můžete pokračovat s vývojem aplikace VBA v Excelu.
Přidání Textboxu do listu aplikace Excel
Chcete-li přidat TextBox do listu aplikace Excel, použijte následující pokyny:
1. Otevřete sešit aplikace Excel, do kterého chcete přidat TextBox.
2. Vyberte list, do kterého chcete TextBox přidat. Chcete-li to provést, klikněte na název listu ve spodní části okna aplikace Excel.
3. Klikněte na kartu Vývojář na hlavním panelu nástrojů aplikace Excel. Pokud se karta Vývojář nezobrazí, postupujte podle následujících pokynů:
a) v aplikaci Excel 2010: klikněte na tlačítko Soubor, vyberte položku Možnosti, poté Nastavení pásu karet a zaškrtněte políčko Vývojář.
b) v Excelu 2013 a novějších: klikněte na tlačítko Soubor, vyberte možnost Možnosti, poté možnosti pásu karet a zaškrtněte políčko Vývojář.
4. Na kartě Vývojář klikněte na tlačítko Vložit ve skupině ActiveX nebo formuláře. Chcete-li to provést, možná budete muset kliknout na šipku vedle tlačítka Vložit, abyste otevřeli rozevírací nabídku.
5. V nabídce vyberte "TextBox"nebo" textové pole".
6. Najeďte kurzorem na list aplikace Excel a kliknutím myši přidejte TextBox na vybrané místo.
7. V případě potřeby upravte velikost a umístění Textboxu pomocí nástrojů pro formátování v horním panelu nástrojů aplikace Excel.
Nyní můžete pomocí přidaného Textboxu zadat text nebo data do listu aplikace Excel.
Jak přesunout kurzor na TextBox
Při práci s formuláři v aplikaci VBA Excel je někdy nutné nastavit kurzor na konkrétní vstupní pole, aby uživatel mohl okamžitě začít zadávat data. Zde je několik způsobů, jak přesunout kurzor na TextBox:
- Použití vlastnosti SetFocus: TextBox1.SetFocus tímto způsobem nastavuje zaměření na TextBox1. Uživatel může okamžitě začít zadávat data do tohoto pole.
- Použití metody Activate: TextBox1.Activate tímto způsobem také nastaví zaměření na TextBox1 a umožňuje uživateli okamžitě začít zadávat data.
- Pohyb kurzoru pomocí kláves: Je také možné programově posunout kurzor na TextBox pomocí klávesové zkratky, například:
- SendKeys "" - přesun na další prvek formuláře;
- SendKeys " je přesun na předchozí prvek formuláře.
Je důležité si uvědomit, že tyto způsoby by měly být použity poté, co bude forma s prvky otevřena nebo aktivována VBA. Pokud chcete při otevírání formuláře nastavit zaměření na TextBox, můžete použít událost UserForm_Activate .
Pomocí těchto způsobů můžete snadno přesunout kurzor na TextBox a usnadnit uživatelům práci s formuláři.
Nastavení zaostření na TextBox pomocí kódu
Při práci s VBA v Excelu je často nutné zaměřit se na konkrétní ovládací prvek, jako je TextBox. To lze provést jednoduchým kódem.
Zde je příklad kódu, který vám umožní nastavit zaměření na TextBox:
Private Sub SetFocusOnTextBox()TextBox1.SetFocusEnd Sub
Chcete-li nastavit zaostření na TextBox, musíte u objektu TextBox zavolat metodu SetFocus. V tomto příkladu je TextBox1 název Textboxu, na který chceme zaostřit.
K vyvolání tohoto kódu lze použít událost i tlačítko na listu aplikace Excel. Můžete například přidat událost pro tlačítko:
Private Sub CommandButton_Click()SetFocusOnTextBoxEnd Sub
Po stisknutí tlačítka tak bude zaostření nastaveno na TextBox.
Nyní víte, jak nastavit zaměření na TextBox pomocí kódu v VBA Excel. To může být užitečné, když chcete poskytnout uživatelsky přívětivější zážitek a usnadnit zadávání dat do Textboxu.
Příklad použití VBA k instalaci kurzoru na TextBox
K instalaci kurzoru na TextBox v Excelu pomocí VBA můžeme použít metodu SetFocus. Tato metoda umožňuje zaostřit na konkrétní ovládací prvek, jako je TextBox.
Chcete-li nastavit kurzor na TextBox, budete potřebovat znát název Textboxu, na kterém chcete nastavit kurzor. Poté můžete použít následující kód:
Sub SetCursorOnTextBox()' Установка курсора на TextBoxTextBox1.SetFocusEnd Sub
V tomto příkladu je TextBox1 název Textboxu, na kterém chceme nastavit kurzor. Můžete jej nahradit názvem TextBox, který chcete použít.
Po dokončení kódu bude kurzor nastaven na TextBox1 a můžete okamžitě začít psát text do Textboxu, aniž byste na něj klikli myší.
Tento příklad umožňuje automatizovat instalaci kurzoru na TextBox a zlepšit výkon vstupních dat v Excelu pomocí VBA.