Изменение цвета контура шрифта внутри ячейки таблицы с помощью VBA с помощью Application.CommandBar.ExecuteMSO - PullRequest
0 голосов
/ 17 февраля 2020

Win10x64 Office 365 PPT v 16.0.12325.202080 64-бит

Мне нужно показать символ с желтым цветом шрифта, но черным контуром, для удобства чтения. Этот символ входит в ячейку таблицы Powerpoint.

Следующая ссылка содержит метод, который я сейчас использую, который состоит в создании фиктивной фигуры, добавлении к ней текста, изменении свойств линии шрифта textrange текста textframe2 и затем скопировать его и вставить обратно в ячейку таблицы.

http://www.vbaexpress.com/forum/archive/index.php/t-43787.html

Это просили 8 лет go, но в настоящее время я вижу то же самое поведение, при котором мы не можем напрямую манипулировать форматом textartframe2 wordart текста внутри ячейки. Программа не показывает ошибку, но не работает.

Я отказался от попыток изменить свойства строки шрифта textrame2 textrange непосредственно из VBA.

Мне удалось заставить его активировать цвет контура шрифта, используя Application.CommandBars.ExecuteMso ("TextOutlineColorPicker")

После его активации я подумал, что могу изменить свойства строки шрифта textrange textrameme2, но он все еще не работает ,

Существует ли IDMso Application.CommandBars для изменения цвета контура шрифта и ширины линии контура шрифта внутри ячейки таблицы?

Или другой способ, кроме вставки форматированного текста в ячейку таблицы.

Редактировать: добавление изображения для иллюстрации того, что я подразумеваю под цветом текста и цветом контура текста, а также меню, используемое для их отображения в красном круге:

enter image description here

Edit2 Добавлен еще один снимок, чтобы проиллюстрировать персонажа внутри ячейки с черным контуром и персонажа внутри ячейки без контура enter image description here

Спасибо

1 Ответ

0 голосов
/ 18 февраля 2020

Вот пример для доступа к Table на данном слайде и изменения атрибутов одной ячейки. Пример слайда, который я использую, выглядит следующим образом:

enter image description here

Сам код создает функцию, позволяющую выбрать таблицу из определенного слайда, и одну ячейку в таблице и выделите ее.

Option Explicit

Sub test()
    HighlightTableCell 1, 2, 3
End Sub

Sub HighlightTableCell(ByVal slideNumber As Long, _
                       ByVal thisRow As Long, _
                       ByVal thisCol As Long)
    Dim theSlide As Slide
    Set theSlide = ActivePresentation.Slides(slideNumber)

    Dim shp As Shape
    For Each shp In theSlide.Shapes
        If shp.Type = msoTable Then
            Dim theTable As Table
            Set theTable = shp.Table
            With theTable.Cell(thisRow, thisCol)
                With .Shape.TextFrame2.TextRange.Characters.Font.Fill
                    .Visible = msoTrue
                    .ForeColor.RGB = RGB(255, 255, 0)
                    .Transparency = 0
                    .Solid
                End With
                With .Shape.TextFrame2.TextRange.Characters.Font.Line
                    .Visible = msoTrue
                    .ForeColor.ObjectThemeColor = msoThemeColorText1
                    .ForeColor.TintAndShade = 0
                    .ForeColor.Brightness = 0
                    .Transparency = 0
                End With
            End With
        End If
    Next shp
End Sub
...