Я хочу использовать vba, чтобы изменить шрифт всех командных кнопок ActiveX на нескольких листах. Я знаю, что шрифт можно обновить с помощью vba, потому что этот код сделает это за одну кнопку
Private Sub CommandButton49_Click()
CommandButton49.Font = "Arial Rounded MT Bold"
End Sub
Я видел на этом сайте способ получения коллекции
Dim MyShapes As OLEObjects
Dim btn As OLEObject
Dim cbtn As CommandButton
'OLE Programmatic Identifiers for Commandbuttons = Forms.CommandButton.1
Set MyShapes = ActiveSheet.OLEObjects
For Each btn In MyShapes
If btn.progID = "Forms.CommandButton.1" Then
btn.Object.Font = "Arial"
End If
Next
, но этот код выдает ошибку времени выполнения 438. Объект не поддерживает это свойство или метод, что странно, потому что я могу использовать этот метод для отображения шрифта, т.е. msgbox btn.Object.Font будет отображать текущий шрифт.
Чего мне не хватает?