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

发布于 2024-11-14 09:20:38 字数 352 浏览 5 评论 0原文

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

所以,如果我的字体大小是 48,我可以根据标准 Word 2007 字体组中的字体下拉列表轻松地将其减少到 36,而不是将字体大小减少 12 - 我不知道下一个字体大小是什么down 是...

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

MyText.Font.Size = 36;

我可以做类似的事情吗:

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

Is there a simple way to reduce the Font Size in Word / Excel etc by 1 step in VBA?

So, say if my Font size was 48 could I reduce it to 36, easily, as per the Font drop down in the standard Word 2007 Font group, rather than reducing the font size by 12 - I will not know what the next font size down is...

So rather than setting Font Size explicitly by float :

MyText.Font.Size = 36;

could I do something like :

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静若繁花 2024-11-21 09:20:38

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

For Excel, you can check the Font Size combobox on the Formatting toolbar. That's 2003 stuff and I think it will still work in 2007 and beyond, but I don't have it available to test.

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
著墨染雨君画夕 2024-11-21 09:20:38

使用字体< /a> 对象的 Shrink方法:

MyText.Font.Shrink

相反的是MyText.Font.Grow

Use the Font object's Shrink method:

MyText.Font.Shrink

The opposite is MyText.Font.Grow.

水波映月 2024-11-21 09:20:38

您可以成长缩小字体。

You can Grow and Shrink fonts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文