3

Micro:我想从 Word 模板/样式集中查看样式名称及其特征的列表。

宏:我办公室的其他人已经定义了具有多种格式的样式集和模板。除了打开文档、应用样式并为每种样式使用样式检查器之外,有没有办法查看样式定义包含的内容,所以我可以决定是尝试调整样式,还是废弃它并从头开始?

我在 Windows 7 上使用 Word 2010。

桌面支持团队定义了一个称为公司 IT 样式的样式集,该样式集通过用户的模板文件夹推送给网络上的每个用户。

C:\Users\%MyName%\AppData\Roaming\Microsoft\QuickStyles\Company IT QuickStyle Set.dotx

我想导出包含在此样式集中的样式名称列表,以及每种样式的定义/特征,例如使用样式列表中的修改样式按钮显示。

例如:
正常:
字体:(默认)Times New Roman,11 pt,左
行距:单,后空格:6 pt,寡/孤儿控件,样式:快速样式

标题 1:
字体:Arial Black,16 pt,缩进:
左:0"
悬挂:0.3",前空间:18 pt,后:18 pt,与下一个保持一致,1 级
制表位:0.3",列表制表符,大纲编号 +级别:1 + 编号样式:1、2、3、... + 开始于:1 + 对齐方式:左对齐 + 对齐于:0" + 制表符后:0.3" + 缩进:0.3",样式:链接,快速样式
基于: 普通
跟随风格: 普通

Word Tips 时事通讯网站上有一个宏,可以显示模板设置(PaperSize、方向等),但我不知道如何调整它以显示样式格式特征。

http://word.tips.net/T010117_Listing_the_Settings_in_a_Template.html

我正在寻找一种将信息从给定样式集中导出的方法,最好是导出到一个 Word 表格中,该表格将显示样式名称(以该样式格式化),然后是该样式元素的结构化列表。或者甚至更好,到 XML。

有现成的工具可以做到这一点吗?

我是 Word 的半高级用户——可能是我部门中最高级的用户,但无论如何都不是专家。我可以处理宏,但 VBA 经常让我感到困惑。

任何帮助或指针表示赞赏。
詹姆士

编辑:MSMVP 的 Suzanne Barnhill 部分回答了我的问题:

“简单的答案是,您可以通过在后台打印选项卡上的>打印所有页面下拉菜单中选择“属性”下的“样式”来打印此信息。要将其“打印”为文档,您可以>将其打印到Microsoft XPS Document Writer 或 PDF 打印机。”

但是,这只会产生文档中积极使用的那些样式。由于我要检查的一些模板和样式集非常广泛,我宁愿不必创建文档并将每种样式分配给段落或字符。

4

2 回答 2

3

呈现给其他有相同问题的人可以使用答案......

如 OP 中所述,我在 Windows 7 上使用 Word 2010。

“文件”->“打印”对话框中的“打印内容”下拉菜单提供“打印样式”选项,但仅打印该文档中正在使用的样式的定义。

我得到了以下宏,它适用于 Word 2007 和 2010。正如作者 Jessica Weissman 所说,

“这是我在 Word 2007 中使用的一个宏,用于列出文档中所有段落和字符样式的描述。它跳过表格样式和列表样式。它列出了文档中的所有样式,包括那些未使用的样式。

如果一种风格是基于另一种风格的,那么对风格的描述只包括那些与基本风格不同的东西。幸运的是,基本样式是样式描述中的项目之一。

如果要查看所有类型的所有样式,请将 If 语句和 End If 语句注释掉。

警告:它没有经过压力测试,纯粹按原样提供,没有任何保证。

  • 杰西卡”

宏代码如下——它比我想象的要简单。

Sub describeAllStylesWeCareAbout()  
'  by Jessica Weissman  
Dim docActive As Document  
Dim docNew As Document  
Dim styleLoop As Style  
Set docActive = ActiveDocument  
Set docNew = Documents.Add  
For Each styleLoop In docActive.Styles  

   If styleLoop.Type < 3 Then  
  ' show only character and paragraph styles, not list or table styles  
     With docNew.Range  
            .InsertAfter Text:=styleLoop.NameLocal & Chr(9) _  
                & styleLoop.Description  
            .InsertParagraphAfter  
            .InsertParagraphAfter  
    End With  
    End If  
Next styleLoop  
End Sub  
于 2012-12-05T13:26:24.690 回答
1

1.将文档的扩展名更改为 .zip,以便 MyTemplate.docx 变为 MyTemplate.zip

2.打开压缩包

3.在“word”文件夹中有一个名为styles.xml 的文件,其中包含所有样式及其设置。您可以使用 Excel(作为 XML 表格)打开它,以表格格式查看它。

(还有一个名为 stylesWithEffects.xml 的文件,它几乎是相同的,但仍然存在差异,我没有检查到底有什么不同)。

但挑战在于许多列的名称如 val17、val18 等,因此并不总是清楚该值的含义。

希望这有助于JP

于 2016-10-03T07:52:40.657 回答