Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация контролов в run-time / 11 сообщений из 11, страница 1 из 1
12.03.2006, 15:38:51
    #33594980
Каракут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
Расскажите, плз, как правильно создавать на лету контролы в VBA для Word? Пробовал, скажем, создать лейбл таким образом:
Код: plaintext
1.
  Me.Controls.Add "Forms.Label.1", "MyLabel", True
ничего не появилось :(
Также хотелось бы знать, нет ли для VBA контролов типа таблицы?
...
Рейтинг: 0 / 0
13.03.2006, 08:25:40
    #33595469
Генерация контролов в run-time
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub CommandButton1_Click()
    Dim lbl As MSForms.Label
    
    Set lbl = Controls.Add("Forms.Label.1", "Label1", True)
    
    lbl.Left =  20 
    lbl.Top =  20 
    lbl.Width =  150 
    lbl.Height =  20 
    lbl.Caption = "Test Label."
End Sub
...
Рейтинг: 0 / 0
13.03.2006, 10:03:50
    #33595632
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
Пользователь2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub CommandButton1_Click()
    Dim lbl As MSForms.Label
    
    Set lbl = Controls.Add("Forms.Label.1", "Label1", True)
    
    lbl.Left =  20 
    lbl.Top =  20 
    lbl.Width =  150 
    lbl.Height =  20 
    lbl.Caption = "Test Label."
End Sub

кажется невозможно..
но все же ..
как динамически в RUN-TIME создать кнопку на рабочем листе EXCEL -
но !
чтоб она была на шапке рабочего окна рядом (слева)
от стандартных кнопок "_" "X"
изменения вида "_" (полный-нормальный-свернутый) и закрытия книги "X"
(то есть чтоб кнопка сидела на голубой верхней полосе
за которую мы держим окно при перетаскивании по экрану)

и чтобы при перемещении окна перемещалась вместе с ним
==========================
...
Рейтинг: 0 / 0
13.03.2006, 11:27:44
    #33595900
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
посмотри
...
Рейтинг: 0 / 0
13.03.2006, 15:28:47
    #33597066
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
...
Рейтинг: 0 / 0
13.03.2006, 15:30:25
    #33597076
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
MX -- ALEX vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
Я всего лишь пытался предложить альтернативу.
...
Рейтинг: 0 / 0
13.03.2006, 15:41:34
    #33597116
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
vkodor MX -- ALEX vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
Я всего лишь пытался предложить альтернативу.
Спасибо - буду смотреть
менюхи у нас сильно перенасыщены кнопками
хотелось разгрузить путем делегирования части кнопок на окна листов
тем более что место вверху на рамке окна листа все равно пропадает
( полоса шириной сантиметр - а почти не используется)
...
Рейтинг: 0 / 0
13.03.2006, 15:51:27
    #33597144
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
Где-то читал что это можно только с помощью API-функций
...
Рейтинг: 0 / 0
13.03.2006, 23:20:19
    #33598128
Каракут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
Сорри за задержку
Вообще, Пользователь2 совершенно прав, у меня этот маневр сработал только в путь :) Теперь изыскиваю способ сделать форму resizable. Кстати, форма не в Excel, а в Word
...
Рейтинг: 0 / 0
03.05.2006, 14:57:06
    #33704281
RodionD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
У меня получилось так:
Код: plaintext
1.
2.
3.
4.
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
        , DisplayAsIcon:=False, Left:= 536 . 25 , Top:= 458 . 25 , Width:= 72 , Height _
        := 24 ).Select
    ActiveSheet.OLEObjects( 1 ).Object.Caption = "Назад"
Как бы еще на эту кнопку событие повесить?
...
Рейтинг: 0 / 0
04.05.2006, 08:26:37
    #33705617
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация контролов в run-time
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Sub AddButton()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim btn As OLEObject
    Dim cm As CodeModule
    Dim lngFirstLine As Long
    
    Set wb = ThisWorkbook
    Set ws = ActiveSheet
    Set btn = ws.OLEObjects.Add( _
      ClassType:="Forms.CommandButton.1", _
      Link:=False, _
      DisplayAsIcon:=False, _
      Left:= 536 . 25 , _
      Top:= 458 . 25 , _
      Width:= 72 , _
      Height:= 24 )
    
    btn.Object.Caption = "Назад"
    
    Set cm = wb.VBProject.VBComponents(ws.CodeName).CodeModule

    With cm
        lngFirstLine = .CreateEventProc("Click", btn.Name) +  1 
        .InsertLines lngFirstLine, _
          "    Msgbox ""Say Hello!"",vbOkOnly"
    End With
    
    Set cm = Nothing
    Set ws = Nothing
    Set wb = Nothing
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация контролов в run-time / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]