Помогите пожалуйста разобраться.
Я пишу AddIn в VB 6.0 для среды разработки VBA. Проблема: как добавить контрол на созданную UserForm'у через AddIn. Если писать AddIn для среды разработки VB 6.0, то там есть объекты Control и Form, и все это легко делается, а в VBA другая объектная модель.
Заранее спасибо.
Re: Динамическое добавление контрола на UserForm в VBA.
Здравствуйте, Tamago41, Вы писали:
T>Помогите пожалуйста разобраться...
используй методы VB Environment(VBE)
Sub AddFormNax() ' :)
VBE.ActiveVBProject.VbComponents.Add(vbext_ct_MSForm)
' ета строчка добавит тебе в проект форму с именем UserForm1,далееStatic MyForm as object
Set MyForm=UserFrom1
'Ето привяжет MyForm к свежесозданной форме,а дальше самое хитрое ;)
MyForm.Controls.Add("Forms.ListBox.1","xz",true)
'ессно вместо ЛистБокс можно какой угодно компонент из стандартных вписать
MyForm.Show 0
End Sub
в общем как то так ето так делается , на память пишу , поколупайся
там посмотришь
ааа самое главное как ето стереть
сам бы ни в жисть не догадался если б не РСДН
VbComponents по идее коллекция , только ссылку типа "MyForm" оно не принимает
в качестве параметра при удалении, а только путь к обекту в дереве ВБЕ,
так что имей ввиду
Re[2]: Динамическое добавление контрола на UserForm в VBA.
Здравствуйте, par, Вы писали:
par>используй методы VB Environment(VBE)
par>[vb] par>Sub AddFormNax() ' par>VBE.ActiveVBProject.VbComponents.Add(vbext_ct_MSForm) par>' ета строчка добавит тебе в проект форму с именем UserForm1,далее par>Static MyForm as object par>Set MyForm=UserFrom1
Я не могу так установить ссылку на UserFrom1 т.к. поднимется ошибка "Variables not define"
par>'Ето привяжет MyForm к свежесозданной форме,а дальше самое хитрое par>MyForm.Controls.Add("Forms.ListBox.1","xz",true) par>'ессно вместо ЛистБокс можно какой угодно компонент из стандартных вписать
Кстати у меня еще один вопрос: Как можно добавить ссылку на компонент, а затем всавить этот компонент на форму.
Re[3]: Динамическое добавление контрола на UserForm в VBA.
Здравствуйте, Tamago41, Вы писали:
T>Здравствуйте, par, Вы писали:
par>>используй методы VB Environment(VBE)
par>>[vb] par>>Sub AddFormNax() ' par>>VBE.ActiveVBProject.VbComponents.Add(vbext_ct_MSForm) par>>' ета строчка добавит тебе в проект форму с именем UserForm1,далее par>>Static MyForm as object par>>Set MyForm=UserFrom1 T>Я не могу так установить ссылку на UserFrom1 т.к. поднимется ошибка "Variables not define"
aaa пардон я ДЫБЫЛ
как Можно объект Статиком объявлять
во первых пиши паблик или дим наверху вне процедуры для MyForm,
во вторых проверь добавляется ли у тебя форма
UserForm1?
par>>'Ето привяжет MyForm к свежесозданной форме,а дальше самое хитрое par>>MyForm.Controls.Add("Forms.ListBox.1","xz",true) par>>'ессно вместо ЛистБокс можно какой угодно компонент из стандартных вписать T>Кстати у меня еще один вопрос: Как можно добавить ссылку на компонент, а затем всавить этот компонент на форму.
НЕТ, для вбе , насколько я понимаю методы , должны ссылаться напрямую на
объекты в дереве ВБЕ, посмотри пример с удалением формы
Re[4]: Динамическое добавление контрола на UserForm в VBA.