1

Тема: Макрос для изменения высоты строк всех таблиц в документе

Добрый день!

Требуется помощь в создании макроса для изменения значения высоты всех строк во всех таблицах на 0. То есть, чтобы не было лишних промежутков между текстом и границами ячеек.

Переискал весь интернет, решения не нашел. А нажимать на каждую таблицу вручную и менять высоту на 0 очень долго.

Премного благодарен за помощь.

2

Re: Макрос для изменения высоты строк всех таблиц в документе

Как показывает авторекордер макросов, высоту строки 0 для выделенной таблицы устанавливает следующий макрос:

Sub TabTo0()
'
    Selection.Rows.HeightRule = wdRowHeightAtLeast
    Selection.Rows.Height = CentimetersToPoints(0)
End Sub

Этот макрос работает с уже выделенной таблицей.

Вам осталось перебрать все таблицы в файле, выделить каждую из них и применить к ней эти операторы.
Попробуйте это сделать сами.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: Макрос для изменения высоты строк всех таблиц в документе

Благодарю за ответ.

Однако нажимать на каждую таблицу, если их тысячи не очень удобно. Я знаю есть макрос выравнивающий все таблицы по ширине. Может можно как то совместить этот макрос и приведенный здесь, чтобы обрабатывались сразу все таблицы?

С уважением, Максим.

4

Re: Макрос для изменения высоты строк всех таблиц в документе

dansc пишет:

Благодарю за ответ.

Однако нажимать на каждую таблицу, если их тысячи не очень удобно. Я знаю есть макрос выравнивающий все таблицы по ширине. Может можно как то совместить этот макрос и приведенный здесь, чтобы обрабатывались сразу все таблицы?

С уважением, Максим.

Уважаемый Максим, я имел в виду перебрать все таблицы автоматически (в макросе). Вы сможете сами вставить в упомянутый вами макрос операторы, устанавливающие высоту строки 0, вместо выравнивания всех таблиц по ширине?
Если нет, то выложите, пожалуйста, текст макроса, выравнивающего все таблицы по ширине, о котором вы написали. Мы постараемся сформировать нужный вам макрос вместе.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

5

Re: Макрос для изменения высоты строк всех таблиц в документе

Видимо не совсем Вас понял)

Макрос для выравнивания всех таблиц:

Sub AutoFit()
'
' AutoFit Макрос
' Выравнивает все таблицы по ширине окна
'
Dim myTable As Table
For Each myTable In ActiveDocument.Tables
myTable.AutoFitBehavior wdAutoFitWindow
Next myTable
End Sub

6

Re: Макрос для изменения высоты строк всех таблиц в документе

Ну, вот.
Заменяем в присланном вами макросе строку

        myTable.AutoFitBehavior wdAutoFitWindow

на две строки, указанные нам авторекордером и приведенные выше (немного измененные):

        myTable.Rows.HeightRule = wdRowHeightAtLeast
        myTable.Rows.Height = CentimetersToPoints(0)

В результате получится так:

Sub Height0()
'
    Dim myTable As Table
    For Each myTable In ActiveDocument.Tables
        myTable.Rows.HeightRule = wdRowHeightAtLeast
        myTable.Rows.Height = CentimetersToPoints(0)
    Next myTable
End Sub

Строка

myTable.Rows.HeightRule = wdRowHeightAtLeast

даже не обязательна!

Остается следующий макрос:

Sub Height0()
'
    Dim myTable As Table
    For Each myTable In ActiveDocument.Tables
        myTable.Rows.Height = CentimetersToPoints(0)
    Next myTable
End Sub

У меня, вроде бы, все работает!

Если будут вопросы - пишите.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

7

Re: Макрос для изменения высоты строк всех таблиц в документе

Все прекрасно работает.

Благодарю!