Има много начини, по които можете да работите с контролите на диалоговия прозорец във VBA Excel 2016. Така че, ако сте готови за тази стъпка, продължете да четете. Тук ще разберете как да работите с контролите на диалоговия прозорец в обект UserForm.
Преместване и преоразмеряване на контроли
След като поставите контрола в диалогов прозорец, можете да я преместите и преоразмерите, като използвате стандартни техники на мишката. Или за прецизен контрол, можете да използвате прозореца Properties, за да въведете стойност за свойството Height, Width, Left или Top на контролата.
Можете да изберете няколко контроли чрез Ctrl+щракване върху контролите. Или можете да щракнете и плъзнете, за да „ласо“ група от контроли. Когато са избрани няколко контроли, прозорецът Properties показва само свойствата, общи за всички избрани контроли. Можете да промените тези общи свойства и промяната ще бъде направена във всички избрани от вас контроли, което е много по-бързо, отколкото да ги правите един по един.
Една контрола може да скрие друга контрола; с други думи, можете да поставите един контрол върху друг. Освен ако нямате основателна причина за това, уверете се, че не припокривате контролите.
Контроли за подравняване и разстояние
Менюто Формат в прозореца на VBE предоставя няколко команди, които да ви помогнат точно да подравните и разпределите контролите в диалогов прозорец. Преди да използвате тези команди, изберете контролите, с които искате да работите. Тези команди работят точно както може да очаквате. Ето диалогов прозорец с няколко контроли CheckBox, които предстои да бъдат подравнени.
Изберете командата Формат –> Подравняване, за да промените подравняването на контролите на UserForm.
Когато изберете няколко контроли, последният избран контрол се появява с бели дръжки, а не с нормални черни дръжки. Контролата с белите дръжки е основата за подравняване или преоразмеряване на другите избрани контроли, когато използвате менюто Формат.
Приемливи потребители на клавиатура
Много потребители предпочитат да се придвижват през диалогов прозорец с помощта на клавиатурата: натискането на Tab или Shift+Tab преминава през контролите, докато натискането на горещ клавиш незабавно активира определен контрол.
За да сте сигурни, че диалоговият ви прозорец работи правилно за потребители на клавиатура, трябва да имате предвид два проблема:
-
Ред на раздели
-
Клавиши за ускоряване
Промяна на реда на разделите
Редът на разделите определя реда, в който се активират контролите, когато потребителят натисне Tab или Shift+Tab. Той също така определя коя контрола има първоначален фокус - тоест коя контрола е активната контрола, когато диалоговият прозорец се появи за първи път. Например, ако потребител въвежда текст в TextBox, TextBox има фокуса. Ако потребителят щракне върху OptionButton, OptionButton има фокуса. Първата контрола в реда на раздели има фокус, когато Excel за първи път показва диалогов прозорец.
За да зададете реда на контролния раздел, изберете Изглед → Ред на раздели. Можете също да щракнете с десния бутон върху диалоговия прозорец и да изберете Ред на раздели от контекстното меню. И в двата случая Excel показва диалоговия прозорец Ред на раздели.
Диалоговият прозорец Ред на раздели.
Диалоговият прозорец Ред на раздели изброява всички контроли в потребителския формуляр. Редът на разделите в потребителския формуляр съответства на реда на елементите в списъка. За да промените реда на разделите на контрола, изберете я в списъка и след това щракнете върху бутона Преместване нагоре или Преместване надолу. Можете да изберете повече от една контрола (щракнете, докато натискате Shift или Ctrl) и да ги преместите всички наведнъж.
Вместо да използвате диалоговия прозорец Ред на раздели, можете да зададете позицията на контрола в реда на раздели, като използвате прозореца Свойства. Първата контрола в реда на раздели има свойство TabIndex от 0. Ако искате да премахнете контрола от реда на раздели, задайте нейното свойство TabStop на False.
Някои контроли (като контроли Frame или MultiPage) действат като контейнери за други контроли. Контролите в контейнер контрола имат свой собствен ред на раздели. За да зададете реда на раздели за група от бутони OptionButton в контрола Frame, изберете контролата Frame, преди да изберете командата View → Tab Order.
Задаване на горещи клавиши
Обикновено искате да зададете клавиш за ускорение или клавиш за бърз достъп на контролите на диалоговия прозорец. Можете да направите това, като въведете буква за свойството Accelerator в прозореца Properties. Ако дадена контрола няма свойство Accelerator (например TextBox), все още можете да разрешите директен достъп от клавиатурата до нея, като използвате контрола Label. Тоест, задайте клавиш за ускорение на етикета и поставете етикета директно преди TextBox в реда на разделите.
Ето потребителска форма с три текстови полета. Етикетите, които описват TextBoxs, имат клавиши за ускорение и всеки Label предхожда съответния TextBox в реда на разделите. Натискането на Alt+D например активира текстовото поле до етикета на отдела.
Използвайте етикети, за да осигурите директен достъп до контроли, които нямат клавиши за ускорение.
Тестване на потребителски формуляр
VBE предлага три начина за тестване на UserForm, без да го извиквате от VBA процедура:
Когато в този тестов режим се покаже диалогов прозорец, можете да изпробвате реда на разделите и клавишите за ускорение.