Как динамически добавить WebBrowser на форму

Программирование на Visual Basic for Applications
PetrovichV
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.05.2009 (Вт) 16:01

Как динамически добавить WebBrowser на форму

Сообщение PetrovichV » 05.05.2009 (Вт) 16:05

Всем привет.
Не могу добавить WebBrowser на форму, а календарь, кнопки и т.д. без проблем.

Код: Выделить всё
Код:
ThisWorkbook.VBProject.References.AddFromFile ("shdocvw.dll")
Set MyWebBrowser = MyForm.Designer.Controls.Add("SHDocVw.WebBrowser")




Пишет: Недопустимая строка с указанием класса

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Как динамически добавить WebBrowser на форму

Сообщение amokr » 05.05.2009 (Вт) 19:00

никогда не делал этого в VBA, но точно уверен что функция MyForm.Designer.Controls.Add ссылку на объект тебе не вернет.
имеет смысл написать что нить вроде:

dim MyWebBrowser as SHDocVw.WebBrowser
Set MyWebBrowser = new SHDocVw.WebBrowser
MyForm.Designer.Controls.Add(MyWebBrowser)

и при этом хорошо бы еще задать параметры MyWebBrowser, типа имя, размер, местоположение в форме и тд
Последний раз редактировалось amokr 06.05.2009 (Ср) 13:22, всего редактировалось 1 раз.

PetrovichV
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.05.2009 (Вт) 16:01

Re: Как динамически добавить WebBrowser на форму

Сообщение PetrovichV » 06.05.2009 (Ср) 12:24

На строку
Код: Выделить всё
MyForm.Designer.Controls.Add ("MyWebBrowser")

Пишет: Недопустимая строка с указанием класса

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Как динамически добавить WebBrowser на форму

Сообщение amokr » 06.05.2009 (Ср) 13:22

PetrovichV писал(а):На строку
Код: Выделить всё
MyForm.Designer.Controls.Add ("MyWebBrowser")

Пишет: Недопустимая строка с указанием класса

без кавычек надо писать, я опечатался.

если хочешь скинь мне плз на amokr@mail.ru проект, или ту его часть, где ты пытаешся добавить этот вебброузер, попробуем разобраццо
Последний раз редактировалось amokr 06.05.2009 (Ср) 13:49, всего редактировалось 1 раз.

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Как динамически добавить WebBrowser на форму

Сообщение amokr » 06.05.2009 (Ср) 13:43

гы, получил ту же ошибку:) забавно:)
а при попытке инициализации свойств left, Top, Width, Height - разрушительный сбой...

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Как динамически добавить WebBrowser на форму

Сообщение amokr » 06.05.2009 (Ср) 14:01

amokr писал(а):гы, получил ту же ошибку:) забавно:)
а при попытке инициализации свойств left, Top, Width, Height - разрушительный сбой...


Короче вывод опять один - я идиот:)

Твоя ошибка имеет место потому что ни ты ни я не удосужились посмотреть в Object Explorer.

Функция UserForm1.Controls.Add - нифига не принимает объекты, она принимает идентификаторы, по которым сама создает объекты.

При этом я так же ошибся в предположении что эта функция не вернет тебе объект. Она его как раз и возвращает, итого рабочее выражение будет выглядеть примерно так:
Код: Выделить всё
Dim MyWebBrowser As WebBrowser
Set MyWebBrowser = UserForm1.Controls.Add("Shell.Explorer.2", "SomeName")


Дальше можно работать с его свойствами и методами по ссылке MyWebBrowser
Последний раз редактировалось amokr 06.05.2009 (Ср) 16:09, всего редактировалось 1 раз.

PetrovichV
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.05.2009 (Вт) 16:01

Re: Как динамически добавить WebBrowser на форму

Сообщение PetrovichV » 06.05.2009 (Ср) 14:53

Всё, спасибо заработало!
Код: Выделить всё
   Dim MyWebBrowser As WebBrowser
   dim MyForm As Object   
   Set MyForm = ThisWorkbook.VBProject.VBComponents.Add(3)
    With MyForm
         .Properties("Width") = 600
         .Properties("Height") = 400
         .Properties("ShowModal") = True
         .Properties("Caption") = "Main"
    End With
   
    Set MyCommandButton = MyForm.Designer.Controls.Add("Forms.CommandButton.1")
    With MyCommandButton
        .Name = "StartCommandButton"
        .Caption = "Start"
        .Top = 350
        .Left = 150
        .Width = 100
        .Height = 20
    End With
           
    Set MyWebBrowser = MyForm.Designer.Controls.Add("Shell.Explorer.2", "MonitorWebBrowser")
   
    VBA.UserForms.Add(MyForm.Name).Show 'Show the form


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList