Установить цвет фона верхних и нижних колонтитулов - PullRequest
0 голосов
/ 26 мая 2020

Мне удалось изменить цвет фона таблиц Word в теле документа с помощью: oSourceTable.Shading.BackgroundPatternColor = wdRed. Однако тот же код не работает для таблиц Word верхнего или нижнего колонтитула. Я также попытался установить цвет задней части раздела, но безрезультатно. Код выполняется, но верхние и нижние колонтитулы всегда отображаются с белым фоном.

Я работал в основном с Excel VBA и лишь немного с Word VBA, так что, возможно, мне здесь не хватает чего-то очевидного. Заранее благодарим за любые идеи и / или предложения.

В соответствии с просьбой, вот код, который я использую. vTableBackColors - это просто набор цветов. Этот код предназначен для основных таблиц и работает отлично.

For Each oWordTable In oWordDoc.Tables
    lIndex = lIndex + 1
    oWordTable.Shading.BackgroundPatternColor = vTableBackColors(lIndex)
Next 

Я пытался сделать то же самое для таблиц верхнего и нижнего колонтитулов, но это не сработало. Я пробовал использовать таблицы верхнего / нижнего колонтитула, как показано ниже.

For Each oWordSection In oWordDoc.Sections
    For Each oWordTable In oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Tables
        ' I selected this one to see if it would make a difference.
        oWordTable.Select
        oWordTable.Shading.BackgroundPatternColor = m_HeaderBackColor
    Next
    For Each oWordTable In oWordSection.Footers.Item(wdHeaderFooterPrimary).Range.Tables
        oWordTable.Shading.BackgroundPatternColor = m_FooterBackColor
    Next
Next

Я также пробовал напрямую использовать верхние / нижние колонтитулы раздела. До и после проверки видно, что BackgroundPatternColor изменился по желанию, но не отображается.

oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Shading.BackgroundPatternColor = m_HeaderBackColor

enter image description here

Вот снимок экрана, на котором показаны раскрашенные таблицы основного текста и неизмененный заголовок. Возможно ли, что, в отличие от цветов основной таблицы, цвета верхнего / нижнего колонтитула никогда не отображаются как таковые дизайнером Word, а являются истинными только во время выполнения?

Спасибо за любую дополнительную информацию.

1 Ответ

0 голосов
/ 27 мая 2020

«Мне удалось изменить цвет фона таблиц Word в теле документа с помощью: oSourceTable.Shading.BackgroundPatternColor = red.» Это не сработает, если вы не определили «красный» как значение RGB.

Что касается проблемы с верхним / нижним колонтитулом, у меня это работает:

For Each oWordSection In oWordDoc.Sections
    For Each oWordTable In oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Tables
        oWordTable.Shading.BackgroundPatternColorIndex = wdRed
    Next
    For Each oWordTable In oWordSection.Footers.Item(wdHeaderFooterPrimary).Range.Tables
        oWordTable.Shading.BackgroundPatternColorIndex = wdRed
    Next
Next

значение, которое вы присвоили m_HeaderBackColor и m_FooterBackColor, которое ваш опубликованный код не отображает. Также возможно, что ваш код адресует неправильные верхние / нижние колонтитулы (то есть, возможно, это не основные из них, которые вам нужно адресовать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...