Передача переменных в пользовательскую форму в VBA с примерами кода

Чтобы передать переменные в пользовательскую форму в VBA (Visual Basic для приложений), можно использовать несколько методов. Вот несколько примеров:

  1. Использование общедоступных переменных.
    Вы можете объявлять общедоступные переменные в стандартном модуле, а затем получать доступ и изменять их значения как из пользовательской формы, так и из вызывающего кода. Вот пример:

    В стандартном модуле:

    Public MyVariable As String

    В вызывающем коде:

    Sub OpenUserForm()
       MyVariable = "Hello"
       UserForm1.Show
    End Sub

    В пользовательской форме:

    Private Sub UserForm_Activate()
       TextBox1.Text = MyVariable
    End Sub
  2. Использование свойств.
    Вы можете определить свойства в пользовательской форме для передачи значений между вызывающим кодом и пользовательской формой. Вот пример:

    В пользовательской форме:

    Private myVariable As String
    Public Property Let Variable(value As String)
       myVariable = value
    End Property
    Private Sub UserForm_Activate()
       TextBox1.Text = myVariable
    End Sub

    В вызывающем коде:

    Sub OpenUserForm()
       Dim frm As UserForm1
       Set frm = New UserForm1
       frm.Variable = "Hello"
       frm.Show
    End Sub
  3. Использование аргументов.
    Вы можете передавать аргументы в событие Initialize пользовательской формы и сохранять их в локальных переменных внутри пользовательской формы. Вот пример:

    В пользовательской форме:

    Private myVariable As String
    Private Sub UserForm_Initialize()
       TextBox1.Text = myVariable
    End Sub

    В вызывающем коде:

    Sub OpenUserForm()
       Dim frm As UserForm1
       Set frm = New UserForm1
       frm.myVariable = "Hello"
       frm.Show
    End Sub

Это всего лишь несколько методов передачи переменных в пользовательскую форму в VBA. Каждый метод имеет свои преимущества и может оказаться более подходящим в зависимости от ваших конкретных требований.