Ну во первых, вы наверно имели в виду (судя по примеру) присваивание кнопкам не имени (Name) а заголовка (Caption) ....

Во вторых, Вы путаете кнопки пользовательской формы
MSForms.CommandButton и объект
CommandBar - это совершенно
разные объекты несмотря на внешнюю схожесть
Изменить Caption в цикле для кнопки n на форме UserForm1 можно так
Код: Выделить всё
.....
UserForm1.Controls("CommandButton" & format$(n,"#")).caption= .....
....
C действием сложнее - свойства Action у кнопки на форме нет.
Нужно воспользоваться обявлением кнопок как класса с ключевым словом WithEvents
Если помимо обрабатываемых в цикле на форме есть и другие кнопки нужно при проектировании
присвоит вашим кнопкам регулярные имена. Например: Btn1...Btn10
В модуле MyModule размещаете код
В Модуле класса myButtonClass размещаете код
Код: Выделить всё
Option Explicit
Public WithEvents MyBtn As MSForms.CommandButton
Private Sub MyBtn_Click()
select case Int(Mid$(MyBtn.Name,4))
Case 1:
'Обработка нажатия Btn1
Case10:
'Обработка нажатия Btn10
end select
End Sub
А в модуле формы пишете
Код: Выделить всё
Private Sub UserForm_Initialize()
Dim i As Integer
ReDim MyBtnArray(1 To 10)
For i = 1 To 10
Set MyBtnArray(i).MyBtn = UserForm1.Controls(Format$(i, """Btn""#"))
Next i
End Sub
Разумеется, используя эту технологию можно и динамически создавать кнопки на форме.
Примеры находятся на этом форуме всё по тому же ключевому слову
WithEvents