Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Rikk от 28 Август 2015, 07:16

Название: Удалять таблицы с прозрачными границами
Отправлено: Rikk от 28 Август 2015, 07:16
Доброго времени суток! Такая проблема, как сделать, чтобы при обработке таблиц в worde, было удаление таблиц с прозрачными границами?
Название: Re: Удалять таблицы с прозрачными границами
Отправлено: Администратор от 28 Август 2015, 09:10
Вариант 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