Есть макрос, который добавляет на форму контролы и задает для них некоторые параметры.
Можно ли и если да, то как, сохранить измененную форму? Нужно, чтобы в следующий раз открывалась не исходная версия формы, а последняя версия.
____
'*********************************************************************
'1)Excel's Main Window:
'Tick the option "Trust access to the VBA project object model"
'from 'Tools > Macro > Security' menu
'2) VBE Window:
'Establish the following references from 'Tools > References...' menu:
'- Microsoft Visual Basic for Application Extensibility #.#
'- Microsoft Forms #.# Object Library
'*********************************************************************
Sub TestKL()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("UserForm1")
VBComp.Designer.Controls.Add "Forms.ComboBox.1", "TextBox", Visible
ThisWorkbook.Save
End Sub
HandKot писал(а):может какой-нибудь файл (txt, xml) таскать с екселем (или где-нибудь внутри файла), в котором хранить все контролы формы и при ее открытии динамически добавлять?
UserForm1.Controls.Add "Forms.ComboBox.1", "TextBox", Visible
может какой-нибудь файл (txt, xml) таскать с екселем (или где-нибудь внутри файла), в котором хранить все контролы формы и при ее открытии динамически добавлять?
Application.VBE.ActiveVBProject.VBComponents(1).Export("путь к файлу")
Application.VBE.ActiveVBProject.VBComponents.Import("путь к файлу")
Sub TestKL()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("UserForm1")
i = 1
Do While ActiveWorkbook.Worksheets("Форма").Cells(i, 1) <> ""
i = i + 1
Loop
КолСтрок = i
for i=1 to КолСтрок
s1 = ActiveWorkbook.Worksheets("Форма").Cells(i, 1).value
s2 = ActiveWorkbook.Worksheets("Форма").Cells(i, 2).value
s3 = ActiveWorkbook.Worksheets("Форма").Cells(i, 3).value
VBComp.Designer.Controls.Add s1, s2, s3
next i
ThisWorkbook.Save
End Sub
Сейчас этот форум просматривают: YaCy [Bot] и гости: 5