簡體   English   中英

從Excel 2010 VBA中的ActiveX選項按鈕刪除陰影

[英]Remove shadow from ActiveX Option Button in Excel 2010 VBA

當用戶選擇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

誰能幫我解決這個問題?

如果有FORMS按鈕,您可以使用

Sub RemoveFormsButtonShadows()
     'A.Leine 21/10/2015
     For Each Button In ActiveSheet.Shapes
         Button.Select
         Selection.ShapeRange.Shadow.Visible = False
     Next Button
End 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM