Word VBA:多级编号的设置

一、需要达到的效果

文档中样式“标题 1”到“标题 9”分别链接到相应级别列表

各级列表与文字间不用默认的制表符连接,而用空格连接

完成对激活文档(当前文档)光标所选区域符合要求的标题段落(样式为“标题 n”的段落)应用此列表

多级列表目标效果

二、代码

Sub 多级列表()

Dim numFormatStr As String

Dim i As Byte

Dim doc As Document

Dim listTemp As Word.ListTemplate

Set doc = ActiveDocument

Set listTemp = Word.Application.ListGalleries(wdOutlineNumberGallery).ListTemplates(1)

For i = 1 To 9

numFormatStr = numFormatStr & ".%" & i

If Left(numFormatStr, 1) = "." Then

numFormatStr = Mid(numFormatStr, 2)

End If

With listTemp.ListLevels(i)

.NumberFormat = numFormatStr

.TrailingCharacter = Word.WdTrailingCharacter.wdTrailingSpace

.NumberStyle = Word.WdListNumberStyle.wdListNumberStyleArabic

.NumberPosition = CentimetersToPoints(0)

.Alignment = Word.WdListLevelAlignment.wdListLevelAlignLeft

.TextPosition = CentimetersToPoints(0)

.ResetOnHigher = i - 1

.StartAt = 1

.LinkedStyle = "标题 " & i

With .Font

.name = doc.Styles("标题 " & i).Font.name

.NameFarEast = doc.Styles("标题 " & i).Font.NameFarEast

.Size = doc.Styles("标题 " & i).Font.Size

.Bold = doc.Styles("标题 " & i).Font.Bold

.Italic = doc.Styles("标题 " & i).Font.Italic

End With

End With

Next

For Each pa In Selection.Paragraphs

If pa.Style.NameLocal Like "标题 #" Then

pa.Range.ListFormat.ApplyListTemplateWithLevel _

ListTemplate:=listTemp, _

ContinuePreviousList:=True, _

ApplyTo:=wdListApplyToWholeList, _

DefaultListBehavior:=wdWord10ListBehavior

End If

Next

Set doc = Nothing

Set listTemp = Nothing

End Sub

展开阅读全文

页面更新:2024-04-21

标签:制表符   光标   空格   段落   样式   级别   编号   效果   文档   标题   列表

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top