VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Ответить
Аватара пользователя
defor6

VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Сообщение defor6 »

День добрый.



Так сложилось, что текст получен из html и все таблицы пришли с нулевым значением интервала между ячейками. На практике это приводит к появлению двойных границ каждой ячейки в таблице. Дабы этого избежать, параметр "Интервал между ячейками" можно отключить вручную. Однако... Таблиц то море.. А в макрос я могу записать только конкретное число большее либо равное нулю..

Есть ли возможность в VBA "снять галочку" с параметра spacing для каждой таблицы?

Пример кода приложу, дабы не быть голословным:



Код:

Код: Выделить всё

Sub Tables()
'
'
'
Dim i As Integer
Dim Acount As Integer
Acount = ActiveDocument.Tables.count
For i = 1 To Acount
ActiveDocument.Tables(i).Spacing = 0 'приводит к появлению сдвоенных границ :(
Next
End Sub
Аватара пользователя
defor6

Re: VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Сообщение defor6 »

Попробовал на чистом документе -> Создал произвольную таблицу (по умолчанию параметр/галочка Интервалы между ячейками отключен) -> Запустил процесс создания макроса -> Сначала активировал интервалы, потом снял.

Автоматический код привожу ниже:



Код:

Код: Выделить всё

Sub a_111()
'
'
'
    With Selection.Tables(1)
        .TopPadding = CentimetersToPoints(0)
        .BottomPadding = CentimetersToPoints(0)
        .LeftPadding = CentimetersToPoints(0.19)
        .RightPadding = CentimetersToPoints(0.19)
        .Spacing = CentimetersToPoints(0.04)
        .AllowPageBreaks = True
        .AllowAutoFit = True
    End With
    With Selection.Tables(1)
        .TopPadding = CentimetersToPoints(0)
        .BottomPadding = CentimetersToPoints(0)
        .LeftPadding = CentimetersToPoints(0.19)
        .RightPadding = CentimetersToPoints(0.19)
        .Spacing = 0
        .AllowPageBreaks = True
        .AllowAutoFit = True
    End With
End Sub

Как видно, единственным отличаем является параметр "Spacing". Однако при выставлении его в 0 = параметр не деактивируется, а выставляется в нулевое значение ==> сдвоенные границы, что визуально сильно "карявит" документ..
Аватара пользователя
Iska

Re: VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Сообщение Iska »

Для стандартной ширины «.InsideLineWidth» и «.OutsideLineWidth» попробуйте так:



Код:

Код: Выделить всё

Table.Spacing = -0.5
Аватара пользователя
defor6

Re: VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Сообщение defor6 »

Уж не знаю, насколько это правильно, но визуально выглядит так, как нужно. Спасибо.
Аватара пользователя
Iska

Re: VBA - [решено] Уничтожение параметра spacing для всех таблиц документа

Сообщение Iska »

defor6, самое интересное — попробуйте посмотреть, например, из окна отладки, какое теперь значение свойства «.Spacing» у таблицы Изображение.
Ответить

Вернуться в «Программирование и базы данных»