Есть две точки, о которых вы должны знать, чтобы сделать эту работу:
Чтобы получить доступ к элементам управления OptionButton на листе, необходимо выполнить итерацию его коллекции OLEObjects
.
Элемент управления ActiveX не имеет свойства Interior.ColorIndex
.Однако он имеет свойства BackColor
и BackStyle
.Вы должны использовать BackStyle
в этом случае, чтобы сделать элемент управления прозрачным.
Это должно работать:
Sub RemoveColor()
For Each obj In ActiveSheet.OLEObjects
If TypeName(obj.Object) = "OptionButton" Then
obj.Object.BackStyle = fmBackStyleTransparent
End If
Next
End Sub
Если вам не нравится предоставлятьимя типа в виде строки, вы можете заменить условие на:
If TypeOf obj.Object Is MSForms.OptionButton Then ' etc.