选择非粗体文本并更改其颜色(选定段落的)- MS Word VBA 宏
Posted
技术标签:
【中文标题】选择非粗体文本并更改其颜色(选定段落的)- MS Word VBA 宏【英文标题】:Select unbolded text & change its colour (of a selected paragraph)- MS Word VBA Macro 【发布时间】:2017-03-08 14:28:47 【问题描述】: 我想在 MS Word 2010 文档中选择一段文本。 然后使用宏:选择非粗体文本并将该文本的颜色更改为蓝色注意:我不想对整个文档文本执行此操作,只是对我选择的段落/文本块执行此操作)
图片展示了我想做的事情:
我尝试创建以下宏 - 但由于某种原因,它使所有文本(粗体和非粗体)都变成蓝色
Sub MakeUnboldedTextBlue()
'
' MakeUnboldedTextBlue Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = False
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Font.Color = 15773696
End Sub
更新: 我还想从“氰化”中排除项目符号(如果可能的话)
例如: Example of the bullet symbols not being cyanized
【问题讨论】:
【参考方案1】:查看所选文本中的每个字符,如果不是粗体,则对其着色:
Option Explicit
Sub CyanizeNonBoldInSelection()
Dim oRange As range
Dim oChar As range
Dim oListFormat As ListFormat
Application.UndoRecord.StartCustomRecord "CyanizeNonBoldInSelection"
Set oRange = Selection.range
For Each oChar In oRange.Characters
If oChar.Bold = False Then
oChar.Font.ColorIndex = wdTurquoise
If oChar.ListParagraphs.Count > 0 Then
Set oListFormat = oChar.ListParagraphs(1).range.ListFormat
oListFormat.ListTemplate.ListLevels(oListFormat.ListLevelNumber).Font.ColorIndex = wdTurquoise
End If
End If
Next oChar
Application.UndoRecord.EndCustomRecord
End Sub
【讨论】:
这太完美了!谢谢!如果可能的话,我还有一个要求。如果我想“氰化”不包括项目符号的非粗体文本,这可能吗? 如果 oChar.Bold = False And oChar.ListFormat.ListType wdListBullet Then 谢谢,但它并不能如我所愿。建议的更改意味着项目符号旁边的任何文本都不是“青色”(无论是粗体还是非粗体)。我希望所有非粗体文本都被氰化,而不是项目符号符号。为麻烦道歉,如果我的请求是可能的,请告诉我?我已经用一张图片编辑了原始帖子来说明这一点。 哦,你的意思是子弹本身应该是青色的? 不,子弹应该是黑色的/保持原来的颜色。例如i.stack.imgur.com/Thw1C.png。您推荐的更改(如果 oChar.Bold = False And oChar.ListFormat.ListType wdListBullet Then)基本上可以防止项目符号旁边的任何文本被蓝化。以上是关于选择非粗体文本并更改其颜色(选定段落的)- MS Word VBA 宏的主要内容,如果未能解决你的问题,请参考以下文章
contentEditable div 中的粗体选定文本,使用纯 JavaScript,不使用 jQuery 等库