如何从 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