如何隐藏所有表格样式

如何隐藏所有表格样式

我有一个 Word 2010 DOCX 文件,我想隐藏所有不适合我们的 CI/CD 的花哨表格样式。使用 UI 似乎无法做到这一点,所以我需要一个宏。

我尝试了以下

Sub Macro1()
    Dim s As Style

    For Each s In ActiveDocument.Styles
        If s.Type = wdStyleTypeTable Then
            If s.NameLocal <> "Table Grid" Then
                Debug.Print (s.NameLocal)
                s.Visibility = False
                s.UnhideWhenUsed = False
                Call s.Delete
            End If
        End If
    Next
End Sub

它应该隐藏和删除除“表格网格”之外的所有表格样式,但仍然有太多可用的样式。

款式太多

答案1

希望我已经正确理解了这个问题。有点晚了,但这段代码是从 Shauna Kelly 的示例开始创建的,并包含一个类似于您的测试,在我的 Word 2010 环境中运行得很好。不同之处在于您的代码中您想要隐藏的 .Visibility = False,但它应该是 True。我同意这没有意义,所以将 Word VBA 帮助中的相关行粘贴为注释。

图库中的表格样式仅显示我的自定义表格:

在此处输入图片描述

Sub HideTableStyleButMakeItVisibleWhenUsed()
'Hides all non-XX tables from the Gallery unless user manually finds and applies it.

Dim MyTableStyle As Style

    For Each MyTableStyle In ActiveDocument.Styles

        If MyTableStyle.Type = wdStyleTypeTable Then

            If Left(MyTableStyle.NameLocal, 3) = "XX_" Then 'Remain visible in Gallery
                With MyTableStyle
                    .Visibility = False ' True if the specified style is visible as a recommended style in the Styles gallery and in the Styles task pane. Read/write.
                    .UnhideWhenUsed = True
                End With
            Else 'Hide in Gallery
                With MyTableStyle
                    .Visibility = True
                    .UnhideWhenUsed = True
                End With
            End If

        End If

    Next MyTableStyle

End Sub

答案2

这就是你想做的事吗?


隐藏表格样式但在使用时使其可见

Sub Hide_Table_Style()

    With ActiveDocument.Styles(Word.wdStyleTableLightShading)
        .Visibility = True ' Yes, True.
        .UnhideWhenUsed = True
    End With

End Sub

或者简单地隐藏表格样式

Sub Hide_Table_Style()

    With ActiveDocument.Styles(Word.wdStyleTableLightShading)
        .Visibility = True ' Yes, True.
        .UnhideWhenUsed = False
    End With

End Sub

相关内容