Экспорт и импорт пользовательской формы с помощью кода VBA Excel методами VBComponents.Export и VBComponents.Import. Копирование формы из одной книги в другую.
Экспорт пользовательской формы
Пример экспорта пользовательской формы Userform1 из текущей книги Excel в папку «Тестовая» на диске «C» с помощью кода VBA:
1 2 3 |
Private Sub Export() ThisWorkbook.VBProject.VBComponents("UserForm1").Export "C:\Тестовая\UserForm1.frm" End Sub |
В результате экспорта в папке «Тестовая» будут созданы два файла: Userform1.frm
и Userform1.frx
.
Имя конечного файла можно указать любое, например:
1 |
ThisWorkbook.VBProject.VBComponents("UserForm1").Export ThisWorkbook.Path & "\mySuperForm.frm" |
Импорт пользовательской формы
Пример импорта пользовательской формы Userform1 из папки «Тестовая» на диске «C» в текущую книгу Excel с помощью кода VBA:
1 2 3 |
Private Sub Import() ThisWorkbook.VBProject.VBComponents.Import "C:\Тестовая\UserForm1.frm" End Sub |
Информация из файла UserForm1.frx
будет скопирована автоматически — в файле Userform1.frm
есть ссылка на него.
Копирование формы из книги в книгу
Пример копирования пользовательской формы из одной книги Excel в другую книгу с помощью кода VBA, размещенного в стандартном модуле VBAProject(Книга1.xlsm)
, используя методы VBComponents.Export и VBComponents.Import:
1 2 3 4 |
Sub ExportImportForm() Workbooks("Книга2.xlsm").VBProject.VBComponents("UserForm1").Export "C:\Тестовая\SuperForm.frm" Workbooks("Книга3.xlsm").VBProject.VBComponents.Import "C:\Тестовая\SuperForm.frm" End Sub |
Чтобы код копирования формы из одной книги в другую работал, эти книги должны быть предварительно открыты. Открыть их можно программно.
Как программно создавать пользовательские формы из кода VBA Excel смотрите в статье Программное создание формы.