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

Как добавить процедуру к кнопке используя код VBA

Добавлено: 21 авг 2004, 15:30
Дима
Я создал кнопку в MS EXCEL и у меня есть текст макроса который должен выполняться при нажатии кнопки, как мне программно "прицепить" код на событие CLICK.

Добавлено: 21 авг 2004, 23:31
Dmitrij
Я не понял выражение " программно "прицепить"" :( . Если просто приципить: просто кликнуть два раза по кнопке - и вставляй код. Перед этим проверить Сервис-Макрос->Безопасность установлено на "средняя" или "низкая"

Добавлено: 22 авг 2004, 22:16
Дима
Я написал макрос который создает на листе MS EXCEL кнопку (FORMS.CommandButton).
Теперь я хочу кодом записать макрос, который будет исполняться по нажатию этой кнопки. Не прицепить макрос, а создать макрос с помощью кода VBA.

Добавлено: 22 авг 2004, 22:55
Naeel Maqsudov
Многие хотят, но не многие могут ;) (На написание с нуля и отладку ушло около 15 минут)

Пусть:
1) модуль книги в проекте называется "ЭтаКнига"
2) на листе Лист1 есть кнопка CommandButton1
Вот макрос который добавит на нее действие MsgBox "qwerty"

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

Sub qwe()
Dim m As Object
  Set m = ЭтаКнига.VBProject.ActiveVBProject.VBComponents("Лист1")
  With m.CodeModule
    'Private Sub CommandButton1_Click()
    '   MsgBox "qwerty"
    'End Sub
    .InsertLines .CountOfDeclarationLines + 1, "" _
    & Chr(13) & "Private Sub CommandButton1_Click()" _
    & Chr(13) & "  MsgBox ""qwerty""" _
    & Chr(13) & "End Sub" _
    & Chr(13) & ""
  End With
End Sub



PS
Спасибо за вопрос. Никогда раньше этого не делал.
Теперь, Дима, Вы не сможете испытать радость познания нового ;)
Хотя...
Нберите в макросе "ЭтаКнига.VBProject.ActiveVBProject.VBComponents("Лист1").CodeModule", затем поставьте точку, и узнаете все остальное :)

Добавлено: 23 авг 2004, 20:23
Дима
Большое спасибо куратору за помощь.
Дальше все сделаю сам.
GOOD WORKING!!!