Изменение стиля текста в Content Control Properties на основе выбора раскрывающегося значения - PullRequest
0 голосов
/ 28 февраля 2019

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

Код ниже + скриншот, как это выглядит.

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
With ContentControl.Range
    If ContentControl.Title = "Status" Then
        Select Case .Text
            Case "RED"
                .Cells(1).Shading.BackgroundPatternColor = RGB(227, 36, 27)
                .Cells(1).Range.Font.TextColor = wdColorWhite
            Case "AMBER"
                .Cells(1).Shading.BackgroundPatternColor = RGB(251, 171, 24)
                .Cells(1).Range.Font.TextColor = wdColorBlack
            Case "GREEN"
                .Cells(1).Shading.BackgroundPatternColor = RGB(110, 190, 74)
                .Cells(1).Range.Font.TextColor = wdColorWhite
            Case Else
                .Cells(1).Shading.BackgroundPatternColor = wdColorAutomatic
        End Select
    End If
End With
End Sub

enter image description here

Поскольку вы можете 't Изменение цвета подсветки текста в MS Word через VBA Я обнаружил, что могу добиться желаемого вида, изменив формат стиля управления контентом в свойствах.

Свойства -> + NewStyle -> Формат -> Граница ...

enter image description here

enter image description here

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

Мне нужно что-то вроде этого:

enter image description here

Я создал отдельныйстиль для каждого типа выбора.

enter image description here

Однако я не могу найти способ изменить стиль текста в свойствах элемента управления содержимым на основе текущего перетаскиваниявыбор значения в MS Word.

Пожалуйста, помогите.Спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

Возможно:

Private Sub Document_ContentControlOnExit(ByVal CCtrl As ContentControl, Cancel As Boolean)
With CCtrl
  If .Title = "Status" Then
    With .Range
      Select Case .Text
        Case "RED"
          .Shading.BackgroundPatternColorIndex = wdRed
          .Font.ColorIndex = wdWhite
        Case "AMBER"
          .Shading.BackgroundPatternColorIndex = wdDarkYellow
          .Font.ColorIndex = wdColorBlack
        Case "GREEN"
          .Shading.BackgroundPatternColorIndex = wdBrightGreen
          .Font.ColorIndex = wdWhite
        Case Else
          .Shading.BackgroundPatternColorIndex = wdAuto
      End Select
    End With
  End If
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...