2013-12-17 2 views
1

Я пытался сделать акцент на кнопке выбора из элемента управления ActiveX, когда он выбран пользователем. Я решил показать тень, когда она выбрана, и затем скрыть тень, когда пользователь выбирает другую кнопку выбора. Первый процесс работает, тогда как тень не может быть удалена, хотя я выбираю другую кнопку. Мой код VBA показан ниже:Удалить тень из кнопки Option ActiveX в Excel 2010 VBA

Private Sub OptionButton1_Click() 

OptionButton1.Shadow = False 

If OptionButton1.Value = True Then 
OptionButton1.Shadow = True 

Else 
OptionButton1.Shadow = False 

End If 

End Sub 

Может ли кто-нибудь помочь мне решить эту проблему?

+0

у вас есть код в другую кнопку, чтобы удалить тень от OptionButton1? – JosieP

ответ

0

Для этого вам нужно создать одну подстройку, которая должна быть вызвана со всех кнопок параметров, которые у вас есть. Этот общий sub просто удалит тень со всех кнопок выбора. Здесь я беру пример из 3 кнопок выбора.

Option Explicit 

Private Sub OptionButton1_Click() 
    RemoveShadow 

    If OptionButton1.Value = True Then _ 
    OptionButton1.Shadow = True 
End Sub 

Private Sub OptionButton2_Click() 
    RemoveShadow 

    If OptionButton2.Value = True Then _ 
    OptionButton2.Shadow = True 
End Sub 

Private Sub OptionButton3_Click() 
    RemoveShadow 

    If OptionButton3.Value = True Then _ 
    OptionButton3.Shadow = True 
End Sub 

Sub RemoveShadow() 
    Dim objOpt As OLEObject 

    With ActiveSheet 
     For Each objOpt In .OLEObjects 
      If TypeName(objOpt.Object) = "OptionButton" Then 
       objOpt.Shadow = False 
      End If 
     Next 
    End With 
End Sub 
+0

Это работает для меня, спасибо вам большое! – user1805430

+0

Рад помочь! :) –

1

В случае кнопок ФОРМ вы можете использовать

Sub RemoveFormsButtonShadows() 
    'A.Leine 21/10/2015 
    For Each Button In ActiveSheet.Shapes 
     Button.Select 
     Selection.ShapeRange.Shadow.Visible = False 
    Next Button 
End Sub 
Смежные вопросы