Como esconder todos os estilos de tabelas

2

Eu tenho um arquivo DOCX do Word 2010 e gostaria de esconder todos os estilos de tabela que não se encaixam em nosso CI / CD. Não parece ser possível com os meios da interface do usuário, então eu preciso de uma macro.

Eu tentei o seguinte

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

que deve ocultar e excluir todos os estilos de tabela, exceto "Table Grid", mas ainda há muitos estilos disponíveis.

Too many styles

Thomas Weller
fonte
Eu nunca vi ou sequer sei o que é isso. Embora eu tenha uma longa história de programação. VBa é outra coisa. Mas pelo que eu vejo, logicamente, a linha If s.Type = wdStyleTypeTable Then é a marca onde SOMENTE É VERDADE que você faz o que você pede, o que significa que somente quando isso for verdade o resto do código será lido pelo Excel. Esconder estilos extravagantes? Você já tentou mudar o tema? Parece um olho dolorido em vez de um problema, talvez? Não tenho certeza.
ejbytes
@ejbytes: sim, eu quero fazer isso apenas para estilos de tabela, não para estilos de parágrafos ou outros estilos. Não é um problema tão grande se esses estilos estiverem disponíveis. O verdadeiro problema começa quando as pessoas começam a usá-las por causa de preferências pessoais. Eu estou tentando garantir CI / CD, tornando pelo menos mais difícil de usar um estilo "fantasia".
Thomas Weller

Respostas:

0

É isso que você está tentando fazer?


Ocultar o estilo de tabela, mas torná-lo visível quando usado

Sub Hide_Table_Style()

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

End Sub

Ou simplesmente ocultar o estilo de tabela

Sub Hide_Table_Style()

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

End Sub
0m3r
fonte
1
Não, não é isso que estou tentando fazer. O que você descreve é ​​o resultado de uma pesquisa rápida no google que leva você a shaunakelly.com/word/styles/…
Thomas Weller