Межсимвольный интервал в powerpoint vba - PullRequest
0 голосов
/ 06 августа 2020

Я хочу изменить расстояние между символами для выделенного текста в абзаце. Но мой приведенный ниже код изменяет интервал между символами для всего текстового поля. Может ли кто-нибудь помочь мне с этим.

Например, мне просто нужно увеличить расстояние между символами только для выделенного текста из всего предложения. Показанный на картинке ниже

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Spacing = 3

Также приведенный ниже код может помочь мне в моей цели. Но здесь проблема в том, как я могу получить 20 и 45 из макроса.

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Characters(20, 45).Font.Spacing = 3

Ниже приведен пример, хотел бы увеличить расстояние между символами только текста

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Ваш код:

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Spacing = 3

относится ко всему текстовому диапазону выбранной фигуры. Вместо этого используйте:

ActiveWindow.Selection.TextRange2.Font.Spacing = 3

Это будет действовать только для выделенного текста.

0 голосов
/ 06 августа 2020

Вам нужно будет ввести l oop над строкой и проверить формат символьного шрифта для каждой буквы, отмечая начало и конец любого полужирного раздела текста, а затем использовать эти позиции для применения интервала:

Dim shp As Shape, i As Long, pStart As Long, n As Long

Set shp = ActivePresentation.Slides(1).Shapes(1)

pStart = 0

With ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange
    n = .Characters.Count
    For i = 1 To n
        If .Characters(i, 1).Font.Bold Then
            If pStart = 0 Then
                pStart = i
            ElseIf pStart > 0 And i = n Then 'ending on bold text
                .Characters(pStart, i - pStart).Font.Spacing = 3
            End If
        Else
            If pStart > 0 Then 'transitioning to non-bold
                .Characters(pStart, i - pStart).Font.Spacing = 3
                pStart = 0
            End If
        End If
    Next i
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...