Да, действительно.. Причем если после первого запуска добавить вручную на форму Frame1, то при последующем запуске код работает...
Посмотрите вот такой код. Он, правда, под Excel, но зато работает... :D При большем желании можно, наверное, какие-то приемы использовать в Акаде. Код создает на форме 100 кнопок, и процедуры обработки клика по каждой из них..
Option Explicit
Sub Add100Buttons()
Dim UFvbc As VBComponent
Dim CMod As CodeModule
Dim ctl As Control
Dim cb As CommandButton
Dim n As Long, c As Long, r As Long
Dim code As String
' Проверка доступа к объекту VBProject
On Error Resume Next
Dim x
Set x = ActiveWorkbook.VBProject
If Err <> 0 Then
MsgBox "Ваши настройки безопасности не позволяют выполнить этот макрос.", vbCritical
On Error GoTo 0
Exit Sub
End If
Set UFvbc = ThisWorkbook.VBProject.VBComponents("UserForm1")
' Удаление всех элементов управления
For Each ctl In UFvbc.Designer.Controls
UFvbc.Designer.Controls.Remove ctl.Name
Next ctl
' Удаление кода VBA
UFvbc.CodeModule.DeleteLines 1, UFvbc.CodeModule.CountOfLines
' Добавление 100 кнопок
n = 1
For r = 1 To 10
For c = 1 To 10
Set cb = UFvbc.Designer.Controls.Add("Forms.CommandButton.1")
With cb
.Width = 22
.Height = 22
.Left = (c * 26) - 16
.Top = (r * 26) - 16
.Caption = n
End With
' Код обработчика событий
With UFvbc.CodeModule
code = ""
code = code & "Private Sub CommandButton" & n & "_Click" & vbCr
code = code & "Msgbox ""Это кнопка" & n & """" & vbCr
code = code & "End Sub"
.InsertLines .CountOfLines + 1, code
End With
n = n + 1
Next c
Next r
VBA.UserForms.Add("UserForm1").Show
End Sub
Sub ShowForm()
UserForm1.Show
End Sub