Уменьшить размер шрифта на 1 шаг в VBA - PullRequest
7 голосов
/ 07 июня 2011

Есть ли простой способ уменьшить размер шрифта в Word / Excel и т. Д. На 1 шаг в VBA?

Итак, скажем, если бы мой размер шрифта был 48, я мог бы уменьшить его до 36, легко, в соответствии сраскрывающийся список «Шрифт» в стандартной группе шрифтов Word 2007 вместо уменьшения размера шрифта на 12 - я не буду знать, какой будет следующий размер шрифта ...

Поэтому вместо явной установки размера шрифта с помощью float:

MyText.Font.Size = 36;

Могу ли я сделать что-то вроде:

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

Ответы [ 3 ]

6 голосов
/ 07 июня 2011

Для 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
3 голосов
/ 07 июня 2011

Вы можете Расти и Уменьшить Шрифты.

3 голосов
/ 07 июня 2011

Используйте метод Font объекта Shrink:

MyText.Font.Shrink

Противоположность MyText.Font.Grow.

...