Como tornar invisíveis todas as bordas da tabela no MS Word após copiar do HTML

1

Estou em uma situação em que preciso fazer um relatório HTML em um relatório de palavra com nada mais que Ctrl + C ou abri-lo com o Word. Eu acabo com muitas tabelas aninhadas.

O problema reside no fato de que o CSS formata a tabela em HTML enquanto no documento do Word eles ficam com bordas de aparência horrível, que precisam ser invisíveis.

Demoraria muito tempo para tornar as bordas de cada tabela invisíveis.

Existe uma maneira de tornar invisíveis todas as bordas de todas as tabelas no documento?

    
por TheBW 06.11.2012 / 18:04

1 resposta

4

Crie uma macro no Word usando o seguinte código:

Sub SelectAllTables()
    Dim tbl As Table
    Application.ScreenUpdating = False
    For Each tbl In ActiveDocument.Tables
        tbl.Range.Editors.Add wdEditorEveryone
    Next
    ActiveDocument.SelectAllEditableRanges (wdEditorEveryone)
    ActiveDocument.DeleteAllEditableRanges (wdEditorEveryone)
    Application.ScreenUpdating = True
End Sub

Execute a macro para selecionar todas as tabelas e, em seguida, modifique suas bordas de uma só vez:

Editar: Ok, isso deve ser capaz de lidar de forma recursiva com tabelas aninhadas, bem como com qualquer nível:

Sub SelectAllTables()
    Dim tbl As Table
    For Each tbl In ActiveDocument.Tables
        DelTableBorder tbl
    Next
End Sub

Function DelTableBorder(tbl As Table)
    Dim itbl As Table
    tbl.Borders(wdBorderLeft).Visible = False
    tbl.Borders(wdBorderRight).Visible = False
    tbl.Borders(wdBorderTop).Visible = False
    tbl.Borders(wdBorderBottom).Visible = False
    tbl.Borders(wdBorderVertical).Visible = False
    tbl.Borders(wdBorderHorizontal).Visible = False
    tbl.Borders(wdBorderDiagonalUp).Visible = False
    tbl.Borders(wdBorderDiagonalDown).Visible = False
    For Each itbl In tbl.Tables
        DelTableBorder itbl
    Next
End Function
    
por 06.11.2012 / 19:28