Страница 1 из 1

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

Добавлено: 24 янв 2010, 17:58
Busine2009
Как сделать, чтобы этот код заработал:

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

Sub AllControl()
Dim oControl As Control
For Each oControl In UserForm1.Controls
    oControl.Height = 100
Next
End Sub
Этот код должен делать высоту всех элементов формы 100.

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

Добавлено: 25 янв 2010, 06:21
AlexEL
Да должен работать.
Просто форму надо перерисовать: 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

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

Добавлено: 25 янв 2010, 20:38
Busine2009
AlexEL
Да увеличение происходит, только не в заготовке, а после появления формы. Надо чтобы в самой заготовке были изменения.

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

Добавлено: 25 янв 2010, 21:13
AlexEL
Busine2009 писал(а):AlexELНадо чтобы в самой заготовке были изменения.
Тогда зачем тебе заготовка формы?
Создал, чтобы скучно не было, когда будешь ее макросами изменять?
Удали заготовку и создавай форму и ее компоненты с помощью макросов.

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

Добавлено: 25 янв 2010, 21:16
Busine2009
AlexEL
надо чтобы форма в VBA изменялась, а не после её выполнения.

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

Добавлено: 25 янв 2010, 22:51
AlexEL
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