在MS Word文档中的每个句子上使第一个字母变为粗体

don*_*nny 4 ms-word word-vba

我想在MS Word文档中对每个粗体句子做第一个字母.什么是实现这一目标的好方法?

Tod*_*ain 6

在VBA中很直接

Sub BoldFirstLetterInSentence()
Dim ad As Document
Set ad = ActiveDocument
Dim sen As Range
For Each sen In ad.Sentences
    sen.Words.First.Characters.First.Font.Bold = True
    /* sen.Words(1).Characters(1).Font.Bold = True also works */
Next
End Sub
Run Code Online (Sandbox Code Playgroud)


And*_*eiM 3

这可以通过 Word 内置的高级查找+替换来完成。您需要指定一个通配符匹配表达式(例如此表达式)来选择句子分隔符和空格后面的第一个字符:

[\.\?\!] ?
Run Code Online (Sandbox Code Playgroud)

您可以指定如何在同一 UI 中设置找到的每个字符的样式(严格来说不是查找/替换 - 您可以查找/样式)。请注意,上面的表达式将同时生成每个句子的第一个字符和前面的 ?/!/。大胆的。您可以通过再次搜索标点符号并取消粗体来纠正此问题。

请参阅本指南: http: //www.gmayor.com/replace_using_wildcards.htm

我知道,程序化程度不高,但比深入研究 VBA 快得多。