VBA在WORD应用中如何将格式应用于选定内容

时间:2021-09-14 04:24:24

下列示例使用 Selection 属性将字符和段落格式应用于选定文本。使用 Font 属性获得字体格式的属性和方法,使用 ParagraphFormat 属性获得段落格式的属性和方法。

Sub FormatSelection()
    With Selection.Font
        .Name = "Times New Roman"
        .Size = 14
        .AllCaps = True
    End With
    With Selection.ParagraphFormat
        .LeftIndent = InchesToPoints(0.5)
        .Space1
    End With
End Sub
将格式应用于某一区域
下列示例定义了一个 Range 对象,它引用了活动文档的前三个段落。通过应用 Font 和 ParagraphFormat 对象的属性来设置 Range 对象的格式。

Sub FormatRange()
    Dim rngFormat As Range
    Set rngFormat = ActiveDocument.Range( _
        Start:=ActiveDocument.Paragraphs(1).Range.Start, _
        End:=ActiveDocument.Paragraphs(3).Range.End)
    With rngFormat
        .Font.Name = "Arial"
        .ParagraphFormat.Alignment = wdAlignParagraphJustify
    End With
End Sub
插入文字并应用字符和段落格式
下列示例在当前文档的上部添加单词 Title。第一段居中对齐,并在该段落之后添加半英寸的间距。将单词 Title 的格式设为 24 磅 Arial 字体。

Sub InsertFormatText()
    Dim rngFormat As Range
    Set rngFormat = ActiveDocument.Range(Start:=0, End:=0)
    With rngFormat
        .InsertAfter Text:="Title"
        .InsertParagraphAfter
        With .Font
            .Name = "Tahoma"
            .Size = 24
            .Bold = True
        End With
    End With
    With ActiveDocument.Paragraphs(1)
        .Alignment = wdAlignParagraphCenter
        .SpaceAfter = InchesToPoints(0.5)
    End With
End Sub
在 12 磅和无之间切换段前间距
下列示例切换选定内容中第一段的段前间距。宏将获取当前段前间距的值,如果该值为 12 磅,则删除段前间距格式(将 SpaceBefore 属性设为零)。如果段前间距的值为除 12 外的其它数值,则将 SpaceBefore 属性设为 12 磅。

Sub ToggleParagraphSpace()
    With Selection.Paragraphs(1)
        If .SpaceBefore <> 0 Then
            .SpaceBefore = 0
        Else
            .SpaceBefore = 6
        End If
    End With
End Sub
切换加粗格式
下列示例切换选定文本的加粗格式。

Sub ToggleBold()
    Selection.Font.Bold = wdToggle
End Sub
将左边距增加 0.5 英寸
下列示例将左边距和右边距增加 0.5 英寸。PageSetup 对象包含文档的所有的页面设置属性(左边距、下边距、纸张大小等)。LeftMargin 属性用于返回和设置左边距设置。RightMargin 属性用于返回和设置右边距设置。

Sub FormatMargins()
    With ActiveDocument.PageSetup
        .LeftMargin = .LeftMargin + InchesToPoints(0.5)
        .RightMargin = .RightMargin + InchesToPoints(0.5)
    End With
End Sub