Консультация № 174692
29.11.2009, 22:31
0.00 руб.
0 5 1
Уважаемые эксперты подскажите, как посчитать при помощи ВБА количество кнопок в активном документе, имею ввиду кнопки из Элементов управления => Кнопка
Как добавить кнопку я уже выяснил:
Selection.InlineShapes.AddOLEControl ClassType:="Forms.CommandButton.1" 'на месте курсора вставить Кнопку, которая находится в меню элементы управления
Подскажите, а как будет код в активном документе в первой таблице в первой строке в третьей ячейке добавить кнопку, которая добавляется в документе следующим образом: Элементы управления => Кнопка со свойствами заголовок Кнопка1, Height 20, Width 40, Font Times New Roman, Size 14, код для выполнения действий по её нажатию например Beep, спасибо Эндрю

Обсуждение

Неизвестный
02.12.2009, 11:57
общий
это ответ
Здравствуйте, Ципихович Эндрю.
в простом модуле:
Код:

Option Explicit
Sub Макрос()
With ActiveDocument.Tables(1).Rows(1).Cells(3).Range.InlineShapes
'удалим все существующие кнопки
While .Count
.Item(1).Delete
Wend

With .AddOLEControl("Forms.CommandButton.1")
.Height = 20
.Width = 40
With .OLEFormat.Object
.Caption = "Кнопка1"
.Name = "MyButton"
With .Font
.Name = "Times New Roman"
.Size = 14
End With
End With
End With
End With
End Sub

и в модуле документа:
Код:

Option Explicit
Private Sub MyButton_Click()
Beep
End Sub

Успехов.
Неизвестный
02.12.2009, 22:12
общий
HookEst:
Спасибо за ответ
Подскажите пожалуйста каким образом сделать, чтобы в приведённом Вами примере не удалять существующие кнопки а посчитать их количество и если их пять тогда вставить шестую
А также я понял, что для обработки нажатия на созданную програмно кнопку я должен поместить код:

Option Explicit
Private Sub MyButton_Click()
Beep
End Sub

Только я не пойму если я заставляю программу в ячейке таблицы добавить кнопку то неужели этот код я должен поместить сам
Разве это програмно нельзя это сделать, если нельзя тогда помоему нет смысла в её добавлении?
Поясните пожалуйста
Спасибо Эндрю
Неизвестный
03.12.2009, 09:11
общий
За количество отвечает свойство InlineShapes.Count...
Разве это програмно нельзя это сделать, если нельзя тогда помоему нет смысла в её добавлении?

Есть ли смысл в добавлении чего-либо - это уже Вам решать...
Неизвестный
03.12.2009, 09:29
общий
HookEst:
Все мои изречения уходят в цытаты
А я так и не понял програмно это можно сделать или нет?
Спасибо
Неизвестный
05.12.2009, 01:09
общий
HookEst:
Жаль что такая несговорчивая кнопка, осталась у неё последняя попытка, чтобы пригодится, подскажите можно ли ей
указать ControlTipText «Работаю», если да то подскажите это в коде:
With ActiveDocument.Tables(1).Rows(1).Range.InlineShapes 'InlineShapes это фигура(в строке)
With .AddOLEControl("Forms.CommandButton.1")
.Height = 20 'высота кнопки
.Width = 40 'ширина кнопки
With .OLEFormat.Object
.Caption = "Кнопка1" 'надпись на кнопке
.Name = "Кнопа" 'имя кнопки
'.ControlTipText "String" 'добавление подсказки элементу формы
With .Font 'шрифт
.Name = "Times New Roman" 'наименование шрифта
.Size = 14 'размер шрифта
End With
End With
End With
End With
Хотел Вас спросить в панели Элемент управления имеется кнопка: Элемент управления ОСХ
Нажав её можно выбрать из множества элементов Зарегистрировать панель управления...
И как я понял там можно, что то добавить, знаете ли Вы что можна добавить и откуда это можно взять?
Спасибо Эндрю

Форма ответа