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

时间:2010-06-22 19:40:02

标签: ms-word word-vba

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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

[\.\?\!] ?

您可以指定在同一个UI中找到的每个字符的样式(不严格查找/替换 - 您可以找到/样式)。请注意,上面的表达式将使每个句子的第一个字符和前面的?/!/。胆大。您可以通过另外搜索标点符号并取消粗体来校正它。

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

我知道,这不是非常编程,但比钻研VBA要快得多。

答案 2 :(得分:1)

以下为我工作

Option Explicit

Public Sub SetFirstLetterBold()
    Dim i As Integer
    Dim doc As Document
    Set doc = ActiveDocument

    For i = 1 To doc.Sentences.Count
        doc.Sentences(i).Characters(1).Bold = True
    Next
End Sub