Удалять таблицы, в которых есть границы

Автор Rikk, 28 августа 2015, 09:17

Rikk

Не подскажите, мне нужно оставить таблицы, в которых прозрачные границы, а остальные таблицы нужно удалить. Как будет выглядеть макрос?

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

Вариант 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
[свернуть]

Rikk