1

我正在尝试包含一个按钮,用于文本框的文本换行和锁定形状的纵横比。我可以让按钮自行工作,但我似乎无法获得 getPressed 值来反映形状的初始状态。

即如果一个形状已经有.LockAspectRatio = True,并且我选择了它,自定义按钮的getPressed 属性不会更改为True。当我按下按钮时 sub 仍然运行,它是一条简单的 线.LockAspectRatio = not .LockAspectRatio,但功能区上的按钮显示为“按下”看起来很傻,但形状的实际属性是 False。

我的问题是如何获得 getPressed 值以反映形状的初始值,并将其显示在功能区中。

我从其他帖子中收集到需要一个子来处理功能区,但我不确定这样做的目的,以下是我到目前为止所拥有的。

Option Explicit

Public isPressed As Boolean
Public myRibbon As IRibbonUI

Sub toggleAR(ribbon As IRibbonUI)
    
    Set myRibbon = ribbon
        
End Sub

Sub getPressedAR(control As IRibbonControl, ByRef returnedVal)

    Select Case control.Id
        Case "AspectRatio"
            returnedVal = isPressed
    End Select

End Sub

Sub AspectRatio(control As IRibbonControl, pressed As Boolean)
    
    Select Case control.Id
        Case "AspectRatio"
            If ActiveWindow.Selection.ShapeRange.LockAspectRatio = msoTrue Then
                isPressed = True
            Else
                isPressed = False
            End If
            ActiveWindow.Selection.ShapeRange.LockAspectRatio = Not ActiveWindow.Selection.ShapeRange.LockAspectRatio
    End Select
    
End Sub

提前致谢

4

0 回答 0