У неким случајевима, можда ћете желети да корисник изабере опсег Екцел ВБА док се приказује оквир за дијалог. Пример овог типа избора опсега Екцел ВБА се појављује у дијалогу Креирај табелу, који се приказује када изаберете Почетна → Убаци → Табеле → Табела. Дијалог „Креирај табелу“ има контролу бирача опсега која садржи Екцелово нагађање у вези са опсегом који треба да се конвертује — али ову контролу можете користити да промените опсег тако што ћете изабрати ћелије на радном листу.
Да бисте омогућили избор опсега Екцел ВБА у свом дијалогу, додајте контролу РефЕдит. Следећи пример приказује оквир за дијалог са адресом опсега тренутног региона приказаном у контроли РефЕдит. Тренутни регион је блок непразних ћелија који садржи активну ћелију. Корисник може да прихвати или промени овај опсег. Када корисник кликне на ОК, поступак подебљава опсег.
Овај оквир за дијалог омогућава кориснику да изабере опсег.
Овај Екцел ВБА пример претпоставља следеће:
- Имате кориснички образац под називом УсерФорм1.
- УсерФорм садржи контролу ЦоммандБуттон под називом ОКБуттон.
- УсерФорм садржи контролу ЦоммандБуттон под називом ЦанцелБуттон.
- УсерФорм садржи контролу РефЕдит под називом РефЕдит1.
Код је ускладиштен у ВБА модулу и приказан је овде. Овај код ради две ствари: иницијализује оквир за дијалог додељивањем адресе тренутног региона контроли РефЕдит и приказује кориснички образац.
Суб БолдЦеллс()
' Изађите ако радни лист није активан
Ако ТипеНаме(АцтивеСхеет) <> "Ворксхеет" Затим изађите из Суб
' Изаберите тренутни регион
АцтивеЦелл.ЦуррентРегион.Селецт
' Иницијализујте РефЕдит контролу
УсерФорм1.РефЕдит1.Тект = Селецтион.Аддресс
' Прикажи дијалог
УсерФорм1.Схов
Енд Суб
Следећи поступак се извршава када се кликне на дугме ОК. Ова процедура врши једноставну проверу грешака како би се уверио да је опсег наведен у контроли РефЕдит валидан.
Приватни под ОКБуттон_Цлицк()
У случају грешке ГоТо БадРанге
Опсег(РефЕдит1.Тект).Фонт.Болд = Тачно
Унлоад УсерФорм1
Екит Суб
БадРанге:
МсгБок "Наведени опсег није важећи."
Енд Суб
Ако дође до грешке у Екцел ВБА (највероватније неважећа спецификација опсега у контроли РефЕдит), код скаче на ознаку БадРанге и приказује се оквир са поруком. Оквир за дијалог остаје отворен тако да корисник може да изабере други опсег.
Ако је одабир опсега корисника једина функција коју обавља ваш кориснички образац, можете поједноставити ствари коришћењем методе Апплицатион ИнпутБок.