Přejít na hlavní obsah

VBA Excel: scrolling formuláře v programu

  • Blanka Bednářová
  • Tipy

Microsoft Excel je jedním z nejoblíbenějších programů používaných pro práci s tabulkami a daty. Díky své flexibilitě a schopnostem VBA (Visual Basic for Applications) se Excel stává ještě výkonnějším nástrojem pro automatizaci úloh a vytváření uživatelských rozhraní.

Jedním ze zajímavých aspektů programování VBA v Excelu je možnost vytvářet tvary, které uživatelům umožňují interakci s makry a rozvržení. Při vytváření formulářů však může být nutné přidat rolování pro lepší správu obsahu formuláře, zvláště pokud obsahuje mnoho položek nebo velké množství dat.

V tomto článku se podíváme na to, jak přidat rolování do formuláře VBA Excel. Podíváme se na několik příkladů kódu, které vám pomohou pochopit, jak implementovat rolování ve vašich formulářích a učinit uživatelské rozhraní uživatelsky přívětivějším.

VBA Excel: scrolling formuláře v programu

K implementaci rolování formuláře v aplikaci VBA Excel lze použít ovládací prvek ScrollBar (rolovací lišta), který uživateli umožňuje měnit polohu obsahu formuláře vodorovně nebo svisle. ScrollBar se často používá spolu s ovládacími prvky, jako je ListBox nebo DataGridView, aby bylo možné zobrazit velké množství dat.

Chcete-li přidat ScrollBar do formuláře VBA Excel, musíte provést následující kroky:

  1. Otevřete režim vývojáře v Excelu výběrem karty vývojář z nabídky a kliknutím na tlačítko Režim vývojáře.
  2. Na kartě Vývojář vyhledejte skupinu ovládacích prvků a vyberte posuvník.
  3. Klikněte na tvar, kam chcete umístit ScrollBar, a pomocí myši nakreslete obdélník.

Po přidání ScrollBar do tvaru můžete upravit jeho vlastnosti, jako je velikost, poloha, orientace (horizontální nebo vertikální) a rozsah hodnot. Různé události, jako je událost změny hodnoty ScrollBar nebo událost posouvání, lze také použít k provádění dalších akcí nebo aktualizaci dat na formuláři.

Příklad použití ScrollBar najdete v následujícím kódu VBA:

Private Sub ScrollBar1_Change()' Получить текущее значение ScrollBarDim value As Integervalue = ScrollBar1.Value' Выполнить дополнительные действия в зависимости от значения ScrollBarIf value = 0 Then' Действие 1ElseIf value = 1 Then' Действие 2Else' Действие 3End IfEnd Sub

V tomto příkladu pokaždé, když uživatel změní hodnotu ScrollBar, dojde k provedení určitých akcí v rámci postupu ScrollBar1_Change(). Každý podmíněný operátor může zadat své vlastní akce v závislosti na aktuální hodnotě ScrollBar.

Na závěr, rolování formuláře je důležitou funkcí v aplikaci VBA Excel, která uživatelům umožňuje snadno prohlížet a manipulovat s daty na formuláři. Použití ovládacího prvku ScrollBar vám umožňuje konfigurovat rolování podle specifických potřeb aplikace.

Princip rolování v Excelu VBA

Rolování v aplikaci VBA Excel vám umožňuje procházet obsahem formuláře nebo listu, když přesahuje viditelnou oblast. Základem práce scrollingu jsou události pohybu kolečka myši nebo stisknutí tlačítek šipek nahoru/dolů nebo doleva/doprava.

K implementaci rolování v aplikaci VBA Excel lze použít funkce a vlastnosti objektů tvaru nebo listu. Pomocí těchto funkcí a vlastností můžete zjistit aktuální souřadnice rolování, nastavit nové souřadnice nebo maximální hodnoty.

Například pro rolování formy lze použít vlastnosti Scrolleft a ScrollTop. Vlastnost ScrollLeft nastavuje nebo vrací aktuální horizontální pozici rolování, zatímco vlastnost ScrollTop je vertikální. K posouvání tvaru na uvedený počet pixelů lze také použít metody Scroll. Například metoda Scroll(0, -10) posune tvar o 10 pixelů nahoru a metoda Scroll (10, 0) o 10 pixelů doprava.

Podobně lze použít vlastnosti a metody pro rolování listu v aplikaci VBA Excel. Například vlastnosti ScrollRow a ScrollColumn nastavují nebo vracejí aktuální viditelný řádek a sloupec listu, zatímco metoda ScrollArea určuje oblast rolování.

Vlastnost / metodaPopis
ScrollLeftNastaví nebo vrátí aktuální horizontální pozici rolování tvaru
ScrollTopNastaví nebo vrátí aktuální vertikální pozici rolování tvaru
ScrollPosouvá tvar na uvedený počet pixelů
ScrollRowNastaví nebo vrátí aktuální viditelný řádek listu
ScrollColumnNainstaluje nebo vrátí aktuální viditelný sloupec listu
ScrollAreaNastaví oblast scrollingu listu

K implementaci rolování v aplikaci VBA Excel lze také použít složitější metody, jako je zpracování událostí kolečka myši. Pomocí události MouseWheel lze určit směr rotace kolečka a změnit aktuální pozici rolování podle tohoto směru.

Společným principem rolování v aplikaci VBA Excel je získání aktuálních souřadnic rolování a jejich změna v závislosti na aktivitě uživatele nebo daných podmínkách. To vám umožní spravovat posouvání obsahu formuláře nebo listu a poskytuje pohodlnější přístup k informacím, zvláště když se nevejde na obrazovku.

Příklady použití scrollingu v aplikaci VBA Excel

Rolování v aplikaci VBA Excel umožňuje programově procházet obsahem formuláře nebo listu, který se na obrazovku nevejde. To je zvláště užitečné, když potřebujete pracovat s velkým množstvím dat nebo vytvářet interaktivní uživatelská rozhraní. Níže je několik příkladů použití scrollingu v aplikaci VBA Excel.

1. Použití scrollingu k pohybu po listu

K pohybu po listu pomocí rolování lze použít metodu ScrollRow pro vertikální pohyb a metodu ScrollColumn pro horizontální pohyb. Například následující kód posune aktivní buňku o 5 řádků dolů:

ActiveSheet.ScrollRow = ActiveCell.Row + 5

A další kód posune aktivní buňku o 5 buněk doprava:

ActiveSheet.ScrollColumn = ActiveCell.Column + 5

2. Použití scrollingu k pohybu ve formě

V Excelu lze vytvářet vlastní formuláře a pro pohyb obsahu formuláře lze použít metody VerticalScrollBar a Horizontscrollbar . Chcete-li například posunout formulář o 10 jednotek dolů, můžete použít následující kód:

UserForm1.VerticalScrollBar.Value = UserForm1.VerticalScrollBar.Value + 10

A chcete-li posunout formulář o 10 jednotek doleva, můžete použít následující kód:

UserForm1.HorizontalScrollBar.Value = UserForm1.HorizontalScrollBar.Value - 10

3. Použití scrollingu k pohybu ovládacím prvkem

K pohybu obsahu ovládacích prvků na formuláři lze také použít scrolling. Pokud máte například v ovládacím prvku ListBox vícepodlažní seznam a potřebujete jej posouvat nahoru nebo dolů, můžete použít metody Scroll nebo TopIndex . Například následující kód posune seznam dolů o jeden řádek:

ListBox1.TopIndex = ListBox1.TopIndex + 1

A další kód posune seznam nahoru o jeden řádek:

ListBox1.TopIndex = ListBox1.TopIndex - 1

Toto jsou pouze některé příklady použití scrollingu v aplikaci VBA Excel. Scrolling poskytuje pohodlný způsob, jak se pohybovat v obsahu formuláře nebo listu a usnadnit a zefektivnit práci s daty.