如何从 VBA 访问 MS Word 中的命名列表样式?
How to access a named List Style in MS Word from VBA?
如果我在 MS Word 中创建多级列表样式,我可以为其命名。但是,当我使用 VBA 访问 ActiveDocument.ListTemplates
集合并查看 ListTemplate
对象上的 Name
属性 时,未指示我定义的名称。
其实我发现一个ListTemplate
对象的Name
属性指的是ListNum字段列表名中的定义新的多级列表对话框。
好像ActiveDocument.ListTemplates
属性是一个列表模板的集合,其中一些与文档中出现的列表相关,一些与列表样式相关,一些是成员尽管根本没有在文档中使用,但集合的集合。
所以,有谁知道是否可以使用 Word GUI 定义新的列表样式,命名它(例如,“MyTemp”),然后通过引用该名称从 VBA 代码访问它, 例如:
Selection.Range.ListFormat.ApplyListTemplateWithLevel _
listTemplate:=ActiveDocument.ListTemplates("MyTemp"), _
ApplyLevel:=1
我发现我们定义的列表样式是ActiveDocument.Styles
集合的成员,所以列表模板可以被ActiveDocument.Styles("MyStyle").ListTemplate
访问。
因此:
Selection.Range.ListFormat.ApplyListTemplateWithLevel _
ListTemplate:=ActiveDocument.Styles("MyStyle").ListTemplate, _
ApplyLevel:=1
如果我在 MS Word 中创建多级列表样式,我可以为其命名。但是,当我使用 VBA 访问 ActiveDocument.ListTemplates
集合并查看 ListTemplate
对象上的 Name
属性 时,未指示我定义的名称。
其实我发现一个ListTemplate
对象的Name
属性指的是ListNum字段列表名中的定义新的多级列表对话框。
好像ActiveDocument.ListTemplates
属性是一个列表模板的集合,其中一些与文档中出现的列表相关,一些与列表样式相关,一些是成员尽管根本没有在文档中使用,但集合的集合。
所以,有谁知道是否可以使用 Word GUI 定义新的列表样式,命名它(例如,“MyTemp”),然后通过引用该名称从 VBA 代码访问它, 例如:
Selection.Range.ListFormat.ApplyListTemplateWithLevel _
listTemplate:=ActiveDocument.ListTemplates("MyTemp"), _
ApplyLevel:=1
我发现我们定义的列表样式是ActiveDocument.Styles
集合的成员,所以列表模板可以被ActiveDocument.Styles("MyStyle").ListTemplate
访问。
因此:
Selection.Range.ListFormat.ApplyListTemplateWithLevel _
ListTemplate:=ActiveDocument.Styles("MyStyle").ListTemplate, _
ApplyLevel:=1