Dim oCtrl As Control
Dim oButton As CommandButton
For Each oCtrl In MyForm.Controls
If oCtrl.Tag = "SomeValue" Then
Set oButton = oCtrl
oButton.Enabled = False
End If
Next
Set oCtrl = Nothing
Set oButton = Nothing
Если у вас есть другие кнопки, которые вы не хотите отключать, решение состоит в том, чтобы использовать свойство Tag. Установите для свойства Tag все кнопки, которые вы хотите включить или отключить вместе, на одно и то же значение. Затем вы можете проверить это значение в виде и включить / отключить их. Другой способ - присвоить им одинаковый префикс или суффикс и проверить это в своем коде.
Добавление
Кстати, у объекта Control нет свойства Enabled. Так что вы должны «привести» его к CommandButton, чтобы отключить . По-видимому, у объекта Control есть свойство Enabled, но оно не отображается в intellisense. Однако вы все равно должны попытаться привести Control к CommandButton, чтобы убедиться, что это то, что у вас есть. Вот расширенная версия:
Dim oCtrl As Control
Dim oButton As CommandButton
For Each oCtrl In MyForm.Controls
If oCtrl.Tag = "SomeValue" Then
On Error Resume Next
Set oButton = oCtrl
On Error GoTo 0
If Not oButton Is Nothing Then
oButton.Enabled = False
End If
End If
Next
Set oCtrl = Nothing
Set oButton = Nothing