我正在设置一种格式,供不同部门的许多人使用。我不希望每个人都从 140 种左右的内置样式中选择不同的表格样式。我希望他们从我的两个选项中选择一个。我怎样才能消除Table Tools
>Design
下拉列表中出现的内置样式?
答案1
一个简单的解决方案就是删除样式所在文件夹中的样式。
据我所知,没有办法锁定内置样式。
答案2
在尝试实现相同结果时,我偶然发现了一个有效的解决方案(在这个挑战上浪费了数小时并得出结论,不可能隐藏这些烦恼之后)。
此宏有两个功能 - 第一个功能禁用全部样式,包括表格样式;第二个仅启用列出的样式的可见性。它已注释,但请注意,Visibility 属性在此上下文中似乎完全违反直觉,即 on/true =不是可见且 off/false = 可见。去想想吧。
您还会看到我要显示的样式列表包括内置样式和自定义样式 - 您可以在此处添加表格样式。
不幸的是,我就是那种喜欢复制 / 改编 / 粘贴的程序员,所以如果这对你不起作用的话,我可能无法提供任何进一步的帮助。(但我自己尝试为我的模板创建一个完全符合我要求的默认表格样式,但 Word 2010 完全粉碎了这种尝试 - 所以如果你成功了,我很想知道你是怎么做到的!)。
希望这可以帮助
尼尔
无论如何...继续代码:
Sub RehideStyles()
'
'
'
Dim oSty As Style
Dim oArray As Variant
Dim n As Long
'Start deselecting all - NOTE: Visibility = true means NOT VISIBLE!
With ActiveDocument
For Each oSty In .Styles
.Styles(oSty.NameLocal).Visibility = True
Next oSty
'Display the desired styles - include the names in oArray
oArray = Array(wdStyleBodyText, wdStyleHeading1, wdStyleHeading2, wdStyleHeading3, wdStyleHeading4, wdStyleHeading5, wdStyleHeading6, wdStyleHeading7, wdStyleHeading8, wdStyleHeading9, "Table Text", "List Bullet", "List Number", "WP")
For n = LBound(oArray) To UBound(oArray)
.Styles(oArray(n)).Visibility = False
Next n
End With
End Sub