在VBA中将字体大小减少1步

时间:2011-06-07 10:45:10

标签: excel vba excel-vba word-vba font-size

是否有一种简单的方法可以在VBA中通过1步减少Word / Excel中的字体大小?

因此,如果我的字体大小为48,我可以根据标准Word 2007字体组中的字体下拉菜单将其减少到36,而不是将字体大小减少12 - 我不知道是什么下一个字体大小是......

所以不要通过float显式设置字体大小:

MyText.Font.Size = 36;
我可以做点什么:

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

3 个答案:

答案 0 :(得分:6)

对于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

答案 1 :(得分:3)

使用Font对象的Shrink方法:

MyText.Font.Shrink

相反的是MyText.Font.Grow

答案 2 :(得分:3)

您可以GrowShrink种字体。