8 способов открыть пользовательскую форму в Excel VBA: подробное руководство

Пользовательские формы — это полезные инструменты в Excel VBA, которые позволяют создавать собственные графические пользовательские интерфейсы (GUI) для ввода, отображения и взаимодействия данных. Открытие пользовательской формы — обычное требование при создании приложений Excel или автоматизации задач. В этой статье мы рассмотрим несколько способов открытия пользовательской формы в Excel VBA, а также примеры кода для каждого подхода.

Метод 1. Использование командной кнопки:

  1. Вставка командной кнопки на лист.
  2. Дважды нажмите кнопку, чтобы открыть окно кода.
  3. Напишите следующий код, чтобы открыть пользовательскую форму:
    Private Sub CommandButton1_Click()
    UserForm1.Show
    End Sub

Метод 2: использование сочетания клавиш:

  1. Откройте окно кода для листа или книги.
  2. Напишите следующий код, чтобы назначить горячую клавишу (например, Ctrl + Shift + U) для открытия пользовательской формы:
    Private Sub Workbook_Open()
    Application.OnKey "^+U", "OpenUserForm"
    End Sub
    Sub OpenUserForm()
    UserForm1.Show
    End Sub

Метод 3. Открытие при открытии книги:

  1. Откройте окно кода для книги.
  2. Напишите следующий код, чтобы автоматически открывать пользовательскую форму при открытии книги:
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub

Метод 4. Открытие с помощью пользовательского меню:

  1. Откройте окно кода для книги.
  2. Напишите следующий код, чтобы создать элемент пользовательского меню, открывающий пользовательскую форму:
    Private Sub Workbook_Open()
    With Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlButton)
        .Caption = "Open Userform"
        .OnAction = "OpenUserForm"
    End With
    End Sub
    Sub OpenUserForm()
    UserForm1.Show
    End Sub

Метод 5. Открытие с помощью события двойного щелчка:

  1. Откройте окно кода для листа.
  2. Напишите следующий код, чтобы открыть пользовательскую форму при двойном щелчке по определенному диапазону:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = "$A$1" Then
        UserForm1.Show
        Cancel = True
    End If
    End Sub

Метод 6. Открытие по гиперссылке:

  1. Вставьте гиперссылку в ячейку листа.
  2. Нажмите правой кнопкой мыши на гиперссылку и выберите «Редактировать гиперссылку».
  3. В поле «Адрес» введите следующий код, чтобы открыть пользовательскую форму:
    =OpenUserForm()
  4. Напишите в модуле следующий код:
    Function OpenUserForm()
    UserForm1.Show
    End Function

Метод 7: открытие с использованием события таймера:

  1. Откройте окно кода для листа или книги.
  2. Напишите следующий код, чтобы открыть пользовательскую форму через определенный интервал времени (например, 5 секунд) при открытии книги:
    Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:00:05"), "OpenUserForm"
    End Sub
    Sub OpenUserForm()
    UserForm1.Show
    End Sub

Метод 8: открытие из другой пользовательской формы:

  1. Создайте вторую пользовательскую форму (UserForm2).
  2. Добавьте кнопку в UserForm1.
  3. Напишите следующий код для события нажатия кнопки в UserForm1, чтобы открыть UserForm2:
    Private Sub CommandButton1_Click()
    UserForm2.Show
    End Sub

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

Не забудьте сохранить книгу в формате с поддержкой макросов (.xlsm), чтобы сохранить функциональность кода VBA. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует вашим потребностям для создания динамических и интерактивных пользовательских интерфейсов в Excel!