Удалять таблицы с прозрачными границами

Автор Rikk, 28 августа 2015, 07:16

Rikk

Доброго времени суток! Такая проблема, как сделать, чтобы при обработке таблиц в worde, было удаление таблиц с прозрачными границами?

Администратор

Вариант 1

Макрос просматривает все границы в таблице

Sub Main()

    Dim tbl As Word.Table, i As Long
   
    For i = ActiveDocument.Tables.Count To 1 Step -1
        Set tbl = ActiveDocument.Tables(i)
        If (tbl.Borders.InsideLineStyle = wdLineStyleNone) And (tbl.Borders.OutsideLineStyle = wdLineStyleNone) Then
            tbl.Delete
        End If
    Next i
   
End Sub
[свернуть]

Вариант 2

Макрос просматривает левую границу в первой ячейке. Этот макрос можно использовать, если первый вариант по каким-то причинам даёт неправильный результат (предполагаю, что возможны ситуации, что в таблице не будет границ, но результат будет неправильный).

Sub Main()

    Dim tbl As Word.Table, i As Long
   
    For i = ActiveDocument.Tables.Count To 1 Step -1
        Set tbl = ActiveDocument.Tables(i)
        If tbl.Cell(1, 1).Borders(wdBorderLeft).LineStyle = wdLineStyleNone Then
            tbl.Delete
        End If
    Next i
   
End Sub
[свернуть]