Форматирование формы в Word

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Как сделать, чтобы этот код заработал:

Код: Выделить всё

Sub AllControl()
Dim oControl As Control
For Each oControl In UserForm1.Controls
    oControl.Height = 100
Next
End Sub
Этот код должен делать высоту всех элементов формы 100.
Аватара пользователя
AlexEL
Сообщения: 24
Зарегистрирован: 23 авг 2008, 06:44
Контактная информация:

Да должен работать.
Просто форму надо перерисовать: UserForm.Repaint
Можно делать и так:

Код: Выделить всё

Sub Вызов_формы()
    UserForm.Show
End Sub

' Код в модуле формы
Private Sub UserForm_Initialize()
Dim oControl As Control
    For Each oControl In Me.Controls
        oControl.Height = 100
    Next
End Sub
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexEL
Да увеличение происходит, только не в заготовке, а после появления формы. Надо чтобы в самой заготовке были изменения.
Аватара пользователя
AlexEL
Сообщения: 24
Зарегистрирован: 23 авг 2008, 06:44
Контактная информация:

Busine2009 писал(а):AlexELНадо чтобы в самой заготовке были изменения.
Тогда зачем тебе заготовка формы?
Создал, чтобы скучно не было, когда будешь ее макросами изменять?
Удали заготовку и создавай форму и ее компоненты с помощью макросов.
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexEL
надо чтобы форма в VBA изменялась, а не после её выполнения.
Аватара пользователя
AlexEL
Сообщения: 24
Зарегистрирован: 23 авг 2008, 06:44
Контактная информация:

Busine2009 писал(а):AlexEL
надо чтобы форма в VBA изменялась, а не после её выполнения.
Доступ к имеющимся в документе формам, модулям, к их коду:
Document.VBProject.VBComponents

Пример добавления формы в активный документ:

Код: Выделить всё

Dim F As VBComponent
    
    Set F = ActiveDocument.VBProject.VBComponents.Add(vbext_ct_MSForm)
    F.Name = "Моя_форма"
Изменение элемента формы:

Код: Выделить всё

    F.Designer.Controls("TextBox1").Height = 100
Ответить