On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 62
Откуда: Волгоград
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.09.07 12:35. Заголовок: Динамическое создание формы на VBA


Наткнулся на интересную возможность динамического создания формы (UserForm) на VBA. Мне понравилось и пригодилось.
Пример создает простую форму с одной кнопкой и обработчиком действия этой кнопки. Тестировалось на AIP 11 SP3.

Sub MakeForm()
Dim NewForm As Object

Dim NewCommandButton1 As Msforms.CommandButton

Set NewForm = ThisApplication.VBAProjects.Item(1).VBProject.VBComponents.Add(3)

With NewForm
.Properties("Height") = 100
.Properties("Width") = 200
On Error Resume Next
.Name = "NewForm"
.Properties("Caption") = "Here is your user form"
End With

Set NewCommandButton1 = NewForm.Designer.Controls.Add("forms.CommandButton.1")
With NewCommandButton1
.Caption = "Close"
.height = 18
.Width = 44
.Left = 147
.Top = 6
End With

Dim X As Integer

With NewForm.CodeModule
X = .CountOfLines
.InsertLines X + 1, "Sub CommandButton1_Click()"
.InsertLines X + 2, " Unload Me"
.InsertLines X + 3, "End Sub"
End With

VBA.UserForms.Add(NewForm.Name).Show

'Remove form and class module
ThisApplication.VBAProjects.Item(1).VBProject.VBComponents.Remove VBComponent:=NewForm
End Sub



Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 3
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет