2013-12-17 2 views
1

사용자가 선택할 때 activeX 컨트롤에서 옵션 단추를 강조하려고했습니다. 그림자가 선택되면 표시하고 사용자가 다른 옵션 버튼을 선택하면 그림자를 숨기기로 결정했습니다. 첫 번째 프로세스가 작동하는 반면 다른 버튼을 선택해도 그림자를 제거 할 수 없습니다.Excel 2010의 ActiveX 옵션 단추에서 그림자 제거 VBA

Private Sub OptionButton1_Click() 

OptionButton1.Shadow = False 

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

Else 
OptionButton1.Shadow = False 

End If 

End Sub 

사람이이 문제를 해결하는 데 도움 주실 래요 : 내 VBA 코드는 다음과 같습니다?

+0

당신이 OptionButton1을에서 그림자를 제거 할 수있는 다른 버튼에 코드를해야합니까? – JosieP

답변

0

당신은 모든 옵션 버튼에서 호출해야하는 하나의 하위를 만들어야합니다. 이 공통 하위 기능은 단순히 모든 옵션 버튼에서 그림자를 제거합니다. 여기에 3 개의 옵션 버튼의 예가 있습니다.

FORMS 버튼의 경우
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 
관련 문제