当前,我有一个宏,它根据所选的下拉列表内容控制值来更改.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
由于无法通过VBA更改MS Word中的文本突出显示颜色,因此我发现可以通过更改属性中内容控件的样式格式来获得所需的外观。
属性-> + NewStyle->格式->边框...
只有这样,我才能使用自定义颜色获得所需的“突出显示的文本”外观,而不用更改表格单元格的整个背景。
我想要的是这样的
我为每种选择类型创建了单独的样式。
但是,我不知道根据MS Word中当前的下拉值选择来更改内容控件属性文本样式的方法。
请帮助。谢谢
答案 0 :(得分:0)
也许:
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