V některých případech můžete chtít, aby uživatel během zobrazení dialogového okna vybral rozsah Excel VBA. Příklad tohoto typu výběru rozsahu Excel VBA se vyskytuje v dialogovém okně Vytvořit tabulku, které se zobrazí, když zvolíte Domů → Vložit → Tabulky → Tabulka. Dialogové okno Vytvořit tabulku obsahuje ovládací prvek pro výběr rozsahu, který obsahuje odhad Excelu týkající se rozsahu, který se má převést – tento ovládací prvek však můžete použít ke změně rozsahu výběrem buněk v listu.
Chcete-li povolit výběr rozsahu Excel VBA v dialogovém okně, přidejte ovládací prvek RefEdit. Následující příklad zobrazuje dialogové okno s adresou rozsahu aktuální oblasti zobrazenou v ovládacím prvku RefEdit. Aktuální oblast je blok neprázdných buněk, který obsahuje aktivní buňku. Uživatel může tento rozsah přijmout nebo změnit. Když uživatel klepne na tlačítko OK, v postupu bude rozsah tučný.
Toto dialogové okno umožňuje uživateli vybrat rozsah.
Tento příklad Excel VBA předpokládá následující:
- Máte UserForm s názvem UserForm1.
- UserForm obsahuje ovládací prvek CommandButton s názvem OKButton.
- UserForm obsahuje ovládací prvek CommandButton s názvem CancelButton.
- UserForm obsahuje ovládací prvek RefEdit s názvem RefEdit1.
Kód je uložen v modulu VBA a zobrazen zde. Tento kód dělá dvě věci: inicializuje dialogové okno přiřazením adresy aktuální oblasti ovládacímu prvku RefEdit a zobrazí UserForm.
Sub BoldCells()
' Ukončete, pokud list není aktivní
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
' Vyberte aktuální region
ActiveCell.CurrentRegion.Select
' Inicializujte ovládací prvek RefEdit
UserForm1.RefEdit1.Text = Selection.Address
' Zobrazit dialog
UserForm1.Show
End Sub
Po kliknutí na tlačítko OK se provede následující postup. Tento postup provádí jednoduchou kontrolu chyb, aby se ujistil, že rozsah zadaný v ovládacím prvku RefEdit je platný.
Private Sub OKButton_Click()
On Error GoTo BadRange
Range(RefEdit1.Text).Font.Bold = True
Uvolněte UserForm1
Exit Sub
BadRange:
MsgBox "Zadaný rozsah není platný."
End Sub
Pokud dojde k chybě v Excel VBA (pravděpodobně neplatná specifikace rozsahu v ovládacím prvku RefEdit), kód přeskočí na popisek BadRange a zobrazí se okno se zprávou. Dialogové okno zůstane otevřené, takže uživatel může vybrat jiný rozsah.
Pokud je získání uživatelem vybraného rozsahu jedinou funkcí prováděnou vaším UserForm, můžete věci zjednodušit pomocí metody Application InputBox.