Как да използвате VBA контроли в UserForms

Тази статия ще покаже как да използвате контроли в UserForms в Excel VBA.

VBA има способността да създава формуляри, с които потребителят може да взаимодейства, като формуляри за фактури или данни за контакт. Формулярът може да съдържа разнообразни контроли за формуляри, като текстови полета, комбинирани полета, полета със списъци и командни бутони. Тази статия ще обхваща най -популярните контроли, използвани във формулярите за потребители, а именно текстови полета, етикети, комбинирани полета, кутии със списъци, квадратчета за отметка и групи опции.

За да научите повече за вградените потребителски формуляри и създаването на персонализирани потребителски формуляри в Excel, щракнете тук.

Създаване на потребителска форма

За да създадем потребителска форма в Excel VBA, първо трябва да отворим VBE редактор.

За да вмъкнете нов потребителски формуляр във вашия код, изберете UserForm опция от менюто за вмъкване.

Нов потребителски формуляр ще се появи в Project Explorer и ще бъде показан в прозореца за код вдясно.

Можете да преименувате формуляра си с помощта на Имоти кутия. Това трябва да се появи под вашия Project Explorer.

Ако е видимо, натиснете F4 или щракнете Изглед, Прозорец за свойства.

Щракнете в Име собственост и преименувайте формуляра си.

Вече можем да започнем да попълваме формуляра си с контроли - контролата на текстовото поле е най -популярният контрол заедно с контрола на етикета и командния бутон.

За да попълним формуляра с контроли, трябва да включим инструментариума.

В Меню, изберете Изглед> Кутия с инструменти.

Създаване на текстово поле

За да създадете текстово поле във формуляра си, изберете контролата Текстово поле в кутията с инструменти.

Плъзнете форма на поле с формуляр с мишката, като задържите левия бутон надолу и след това пуснете бутона на мишката.

Тъй като това е първото текстово поле, което създаваме, то ще бъде наречено TextBox1. Както при формуляра, можете да използвате прозореца Свойства, за да преименувате текстовото поле.

Можем да продължим да създаваме колкото се може повече текстови полета в нашата форма и да ги наименуваме, като използваме свойството Name в прозореца Properties.

Създаване на контрол на етикета

Контролът над етикета ни казва какво ще използва текстовото поле. Плъзгате формуляра по същия начин, както правите за текстово поле, след което можете да въведете необходимия текст в контролата на етикета, например: Име, както е показано по -долу.

Както при текстовите полета, продължете да създавате толкова, колкото са необходими във формуляра.

Създаване на Combo Box Control

Комбинирано поле (или падащо поле) позволява на потребителя да избира от списък със стойности. За да създадете комбинирано поле, щракнете в кутията с инструменти на контролата Combo Box и щракнете и плъзнете комбинираното поле във формуляра си.

Назовете подходящо Combo Box.

Добавяне на стойности към Combo Box

За да го попълним със стойности, трябва да кодираме в Инициализирайте метод на обекта User form.

За да стигнете до кода зад формата (CBF), щракнете двукратно върху формуляра или щракнете върху кодовия бутон в Project Explorer, за да превключите към изглед на код.

В падащия списък вляво изберете Потребителски формуляр и след това в падащия списък вдясно изберете Инициализиране.

Въведете следния код в Sub и End Sub, за да попълните падащото поле:

1234 Me.cboState.AddItem "Алабама"Me.cboState.AddItem "Аляска"Me.cboState.AddItem "Аризона"Me.cboState.AddItem "Арканзас"

Разбира се, можем да продължим да попълваме списъка с останалите щати в САЩ!

За да стартирате потребителската форма, за да видите списъка в действие, 1) преминете обратно към изглед на формуляр и след това, 2) в лентата с инструменти щракнете върху Бягай бутон.

Щракнете върху падащата стрелка, за да видите списъка.

Можем също да използваме Range в Excel, за да попълним Combo Box.

123456 Частен подпотребителForm_Initialize ()Dim rng As RangeЗа всеки обхват в обхвата ("A1: A50")Me.cboState.AddItem rng.ValueСледващ rngEnd Sub

Това ще вземе всички стойности, съхранени в обхвата A1 до A50 и съответно ще попълни падащия списък.

Създаване на контрол на списъчно поле

Контролът на List Box работи по същия начин като контролата Combo Box, но ни позволява да виждаме всички опции във формуляра във формат на списък.

Изберете контролата List Box в кутията с инструменти и след това плъзнете, за да създадете поле със списък във формуляра си.

Уморени ли сте от търсене на примери за VBA код? Опитайте AutoMacro!

Добавяне на стойности към списъчното поле

В събитието Initialize на формуляра въведете следния код:

123456 Частен подпотребителForm_Initialize ()Dim rng As RangeЗа всеки обхват в обхвата ("A1: A50")Me.lstState.AddItem rng.ValueСледващ rngEnd Sub

Когато стартираме формуляра, списъчното поле ще се покаже, както е показано на изображението по -долу:

Създаване на контрола за отметка

Полетата за отметка позволяват на потребителя да постави или премахне отметката.

Поставете отметка в квадратчето за отметка и след това щракнете във формуляра, където искате да отидете.

Променете надписа и името на квадратчето за отметка в прозореца със свойства.

Създаване на контрол на група опции с бутони за опции

Групата с опции позволява на потребителя да избира от редица налични опции. Първата стъпка при създаването на група опции е да добавите контрол на рамката към формуляра и след това да добавите бутоните с опции в рамката, която е добавена. По този начин гарантираме, че когато стартираме формуляра, само един от бутоните с опции в рамките на рамката може да бъде избран наведнъж.

Изберете контролата за рамка в кутията с инструменти и след това плъзнете, за да създадете рамка във формуляра си.

Изберете контрола на бутона за опция в кутията с инструменти и след това щракнете ВЪВ рамката, създадена по -горе, за да добавите бутон с опция в рамката. Повторете, ако е необходимо.

Кликнете върху рамката и 1) променете името на рамката и надписа. След това 2) щракнете върху всеки от бутоните с опции и променете надписа.

Създаване на команден бутон за излизане от формуляра

На този етап единственият начин да затворите формуляра е да използвате бутона за затваряне в десния ъгъл на лентата за управление на формуляра. По -ефективен начин за излизане от формуляр и този, при който имаме по -голям контрол, е чрез създаване на бутон Изход във формуляра. Това става чрез контрола на командния бутон в кутията с инструменти.

Изберете контролата на командния бутон и след това щракнете и плъзнете във формуляра си, за да създадете бутона.

Използвайки свойството Caption, променете надписа на командния бутон на OK, а ускорителя на „O“

Целта на Accelerator е в този случай потребителят да използва клавиатурата, за да активира бутона Alt+O ще активира бутона.

Страхотен продукт. AutoMacro не просто пише вашия код, той учи, докато вървите! " - Тони, Великобритания

Научете повече

Прочетете нашите 900+ рецензии

Добавяне на код към командния бутон

За да работи командният бутон, трябва да добавим код зад него, така че при натискане на бутона кодът да се изпълнява. Това се нарича събитие Click на бутона.

За да стигнете до събитието щракване, щракнете двукратно върху бутона в изгледа за проектиране на формуляра.

1) Събитието Click ще бъде създадено автоматично, тъй като това е събитието, което най -често се използва за бутоните Command.

2) Ако щракнем в падащото поле „Процедура“ от дясната страна, ще видим списък с всички методи за събития, които са достъпни за командния бутон. Този списък се променя според вида на контролата, която сме създали, тъй като има различни събития, налични за различни видове контроли.

Въведете следния код в събитието click на командния бутон.

123456789101112131415 Частен под cmdOK_Click ()Диапазон ("E1") = Me.txtFirstnameДиапазон ("E2") = Me.txtSurnameОбхват ("E3") = Me.txtCellPhoneДиапазон ("E4") = Me.cboStateАко Me.ckContactInfo = Вярно, тогаваRange ("E5") = "SMS е разрешен"ИначеRange ("E5") = "SMS не е разрешен"Край АкоАко Me.opt1.Value = True Тогава Range ("E6") = Me.opt1.CaptionАко Me.opt2.Value = True Тогава Range ("E6") = Me.opt2.CaptionАко Me.opt3.Value = True Тогава Range ("E6") = Me.opt3.CaptionРазтоварвай МеEnd Sub

След това можем да стартираме формуляра, да попълним текстовите полета и да изберем от падащия списък. След това щракваме върху OK, за да въведем информацията в Excel.

wave wave wave wave wave