powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация контролов в run-time
11 сообщений из 11, страница 1 из 1
Генерация контролов в run-time
    #33594980
Каракут
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажите, плз, как правильно создавать на лету контролы в VBA для Word? Пробовал, скажем, создать лейбл таким образом:
Код: plaintext
1.
  Me.Controls.Add "Forms.Label.1", "MyLabel", True
ничего не появилось :(
Также хотелось бы знать, нет ли для VBA контролов типа таблицы?
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33595469
Код: 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
Генерация контролов в run-time
    #33595632
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользователь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
Генерация контролов в run-time
    #33595900
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33597066
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33597076
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX -- ALEX vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
Я всего лишь пытался предложить альтернативу.
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33597116
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodor MX -- ALEX vkodorпосмотри
скачал
не догоняю..
ожидал что сверху на окне листа могут появится кнопы
а нет
========
Я всего лишь пытался предложить альтернативу.
Спасибо - буду смотреть
менюхи у нас сильно перенасыщены кнопками
хотелось разгрузить путем делегирования части кнопок на окна листов
тем более что место вверху на рамке окна листа все равно пропадает
( полоса шириной сантиметр - а почти не используется)
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33597144
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то читал что это можно только с помощью API-функций
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33598128
Каракут
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри за задержку
Вообще, Пользователь2 совершенно прав, у меня этот маневр сработал только в путь :) Теперь изыскиваю способ сделать форму resizable. Кстати, форма не в Excel, а в Word
...
Рейтинг: 0 / 0
Генерация контролов в run-time
    #33704281
RodionD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получилось так:
Код: 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
Генерация контролов в run-time
    #33705617
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация контролов в run-time
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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