有没有一种简单的方法可以将VBA中的Word / Excel等中的字体大小减少1步?

因此,假设我的字体大小为48,是否可以按照标准Word 2007字体组中的“字体”下拉菜单轻松地将其减小为36,而不是将字体大小减小12-我将不知道下一个字体大小下来是...

因此,与其通过float显式设置字体大小:

MyText.Font.Size = 36;


我可以做点什么:

MyText.Font.Size -= Reduce by 1 step;....  forgive the pseudo code!

最佳答案

对于Excel,可以选中“格式”工具栏上的“字体大小”组合框。那是2003年的资料,我认为它在2007年及以后仍然可以使用,但是我没有可供测试的资料。

Sub FontShrink(rng As Range)

    Dim i As Long
    Dim ctl As CommandBarComboBox

    Set ctl = Application.CommandBars("Formatting").Controls("Font Size:")

    If rng.Font.Size > CDbl(ctl.List(ctl.ListCount)) Then
        'if it's bigger than the biggest, make it the biggest
        rng.Font.Size = ctl.List(ctl.ListCount)
    Else
        For i = ctl.ListCount To 2 Step -1
            If rng.Font.Size > CDbl(ctl.List(i)) Then
                rng.Font.Size = CDbl(ctl.List(i))
                Exit For
            ElseIf rng.Font.Size = CDbl(ctl.List(i)) Then
                rng.Font.Size = CDbl(ctl.List(i - 1))
                Exit For
            End If
        Next i
    End If
End Sub

10-02 10:38