Используйте следующие шаги для создания пользовательского элемента управления.
Создание пользовательской формы: Чтобы создать пользовательское диалоговое окно, необходимо создать пользовательскую форму. Чтобы создать пользовательскую форму, щелкните «Пользовательская форма» в меню «Вставка» в редакторе Visual Basi c.
Используйте окно «Свойства», чтобы изменить имя, поведение и внешний вид формы. Например, чтобы изменить заголовок в форме, установите свойство Caption.
Добавление элементов управления в форму пользователя Чтобы добавить элементы управления в форму пользователя, найдите элемент управления, который вы хотите добавить в Панель инструментов, перетащите элемент управления на форму, а затем перетаскивайте ручку регулировки на элементе управления, пока контур элемента управления не будет иметь требуемый размер и форму.
Примечание Перетаскивание элемента управления или нескольких «сгруппированных» элементов управления из формы обратно в панель инструментов создается шаблон элементов управления, который можно использовать повторно. Это полезная функция для реализации стандартного интерфейса для ваших приложений.
После добавления элементов управления на форму используйте команды в меню «Формат» в редакторе Visual Basi c, чтобы настроить выравнивание элемента управления и spacing.
Инициализация свойств элемента управления Вы можете инициализировать элементы управления во время выполнения, используя код Visual Basi c в макросе. Например, вы можете заполнить список, задать текстовые значения или установить кнопки выбора.
В следующем примере метод AddItem используется для добавления данных в список. Затем он устанавливает значение текстового поля и отображает форму.
Private Sub GetUserName()
With UserForm1
.lstRegions.AddItem "North"
.lstRegions.AddItem "South"
.lstRegions.AddItem "East"
.lstRegions.AddItem "West"
.txtSalesPersonID.Text = "00000"
.Show
' ...
End With
End Sub
Вы также можете использовать код в событии Initialize формы, чтобы установить начальные значения для элементов управления в форме. Преимущество установки начальных контрольных значений в событии Initialize заключается в том, что код инициализации остается в форме. Вы можете скопировать форму в другой проект, и при запуске метода Show для отображения диалогового окна элементы управления будут инициализированы.
Private Sub UserForm_Initialize()
UserForm1.lstNames.AddItem "Test One"
UserForm1.lstNames.AddItem "Test Two"
UserForm1.txtUserName.Text = "Default Name"
End Sub
События элемента управления и диалогового окна После того, как вы добавив элементы управления в диалоговое окно или документ, вы добавляете процедуры обработки событий, чтобы определить, как элементы управления реагируют на действия пользователя.
Пользовательские формы и элементы управления имеют предопределенный набор событий. Например, командная кнопка имеет событие Click, которое происходит, когда пользователь нажимает командную кнопку, а пользовательские формы имеют событие Initialize, которое запускается при загрузке формы.
Чтобы написать процедуру события элемента управления или формы, откройте модуль, дважды щелкнув форму или элемент управления и выбрав событие из списка процедур.
Процедуры обработки событий включают имя элемента управления. Например, имя процедуры события Click для командной кнопки с именем Command1 - Command1_Click.
Если вы добавите код в процедуру события, а затем измените имя элемента управления, ваш код останется в процедурах с предыдущим name.
Например, предположим, что вы добавили код в событие Click для Command1, а затем переименовали элемент управления в Command2. Если дважды щелкнуть Command2, вы не увидите никакого кода в процедуре события Click. Вам нужно будет переместить код из Command1_Click в Command2_Click.
Чтобы упростить разработку, рекомендуется писать имена элементов управления перед написанием кода.
Отображение пользовательского диалогового окна Чтобы проверить диалоговое окно в редакторе Visual Basi c, нажмите кнопку «Запустить Sub / UserForm» в меню «Выполнить» в редакторе Visual Basi c.
Чтобы отобразить диалоговое окно из Visual Basi c, используйте метод Show. В следующем примере отображается диалоговое окно с именем UserForm1.
Private Sub GetUserName()
UserForm1.Show
End Sub
Использование значений элементов управления во время выполнения кода Некоторые свойства элементов управления можно устанавливать и возвращать во время выполнения кода Visual Basi c. В следующем примере свойство Text текстового поля устанавливается равным «Hello».
TextBox1.Text = "Hello"
Данные, введенные пользователем в форму, теряются при закрытии формы. Если вы возвращаете значения элементов управления в форме после выгрузки формы, вы получите начальные значения для элементов управления, а не значения, введенные пользователем.
Если вы хотите сохранить данные, введенные в форму, вы можете сохранить информацию в переменные уровня модуля, пока форма еще работает. В следующем примере отображается форма и сохраняются данные формы.
' Code in module to declare public variables.
Public strRegion As String
Public intSalesPersonID As Integer
Public blnCancelled As Boolean
' Code in form.
Private Sub cmdCancel_Click()
Module1.blnCancelled = True
Unload Me
End Sub
Private Sub cmdOK_Click()
' Save data.
intSalesPersonID = txtSalesPersonID.Text
strRegion = lstRegions.List(lstRegions.ListIndex)
Module1.blnCancelled = False
Unload Me
End Sub
Private Sub UserForm_Initialize()
Module1.blnCancelled = True
End Sub
' Code in module to display form.
Sub LaunchSalesPersonForm()
frmSalesPeople.Show
If blnCancelled = True Then
MsgBox "Operation Cancelled!", vbExclamation
Else
MsgBox "The Salesperson's ID is: " &
intSalesPersonID & _
"The Region is: " & strRegion
End If
End Sub
Надеюсь, это поможет.