- Категория: Excel
- Опубликовано: 30 октября 2021
- Просмотров: 1928
Фрагмент кода для работы с верхним и нижним колонтитулами
'верхний колонтитул With wdDoc For Each Section In .Sections For Each Header In Section.Headers With Header.Range.Find .Text = "&sn" .Replacement.Text = SN$ .Wrap = wdFindContinue Call .Execute(Replace:=wdReplaceAll) End With Next Next Section End With 'нижний колонтитул With wdDoc For Each Section In .Sections For Each footer In Section.Footers With footer.Range.Find .Text = "&adress" .Replacement.Text = Adress$ .Wrap = wdFindContinue Call .Execute(Replace:=wdReplaceAll) End With Next Next Section End With
ZIP архив с проектом
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Esheron Пользователь Сообщений: 32 |
Опять проблема возникла. В первом разделе документа в колонтитуле замену сделал. |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
А что значит колонтитул раздела? Они могу быть изменены только для всех страниц сразу и для первой страницы может быть отдельный колонтитул. Что хотите сделать Вы? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#3 19.11.2017 16:41:53 Доброе время суток
Разделы — такие блоки документа, которые позволяют менять тип, ориентацию страницы, в том числе, иметь отличные от других разделов колонтитулы. В документе — это коллекция Sections, соответственно, объект раздела Section. В документе есть как минимум один раздел. Прикрепленные файлы
Изменено: Андрей VG — 19.11.2017 16:44:38 |
||
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#4 19.11.2017 17:54:23
Андрей, я знаю Наверное, не так выразился. Я хотел уточнить у ТС, что под разделом подразумевает именно он, т.к. часто видел вопросы вроде того, что на двух страницах нужен один колонтитул, на трех следующих другой и т.д. При этом такие блоки не были разделены на разделы в понимании Word-а, но авторы проблемы называли их именно так. Отсюда и мои вопросы. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Казанский Пользователь Сообщений: 8839 |
#5 19.11.2017 19:49:20
Если использовать обозначения из предыдущей темы , например так
|
||||
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#6 19.11.2017 23:32:10
да, я так, на всякий случай. Вполне вас понимаю, что пользователи часто считают что, если у него написано слово раздел такой-то, то это и есть раздел Word документа. |
||
Esheron Пользователь Сообщений: 32 |
Что-то ругается VBA на данный код. Как-то и вариантов уже нет. |
Esheron Пользователь Сообщений: 32 |
Уточнение — речь о верхних колонтитулах идёт. |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Файлы удалены — превышен максимально допустимый размер. Ознакомьтесь с Правилами. |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#10 20.11.2017 05:12:38
Вы не внимательны, The_Prist, в посте #2 вам писал, что для первой страницы раздела можно сделать отдельный колонтитул. |
||
ZVI Пользователь Сообщений: 4328 |
В режиме редактирования колонтитула (например, по двойному клику в зоне колонтитула) появляется вкладка ‘Конструктор’, на которой в группе ‘Параметры’ есть флажки: Изменено: ZVI — 20.11.2017 05:36:15 |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#12 20.11.2017 05:23:41
Подправлю, в разделе документа. И в каждом разделе документа можно сделать свои настройки. |
||
ZVI Пользователь Сообщений: 4328 |
Андрей, спасибо, исправил. Изменено: ZVI — 20.11.2017 05:37:50 |
Esheron Пользователь Сообщений: 32 |
спасибо за информацию. так оно вероятно и есть. |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#15 20.11.2017 15:11:31
Уж показали бы, где искали? Смотрим коллекцию HeadersFooters объекта Section, члены которой индексируются по перечислению WdHeaderFooterIndex. Изменено: Андрей VG — 20.11.2017 15:11:55 |
||
Esheron Пользователь Сообщений: 32 |
Спасибо за подсказку. Но не очень спец в области работы с doc-документами. А можно поподробней? |
Esheron Пользователь Сообщений: 32 |
Тема закрыта, сам разобрался. |
vikttur Пользователь Сообщений: 47199 |
|
Esheron Пользователь Сообщений: 32 |
Не даёт прикрепить файл. Поэтому так. Изменено: Esheron — 21.11.2017 23:39:01 |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Esheron, посмотрите, как отформатирован код в #5. И Вы поступайте аналогично — ищите такую кнопку и исправьте своё сообщение. |
Esheron Пользователь Сообщений: 32 |
Так рад бы, да отказывается прикреплять файл. |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
#22 21.11.2017 20:05:02 Причём здесь файл? Я говорю про форматирование сообщения. |
Создание верхнего и нижнего колонтитулов из кода VBA Excel: присвоение текста и его выравнивание, назначение шрифта, его размера, цвета и начертания.
Создание колонтитулов
Верхний и нижний колонтитулы в Excel состоят из трех частей: левой, центральной и правой. Следующий код VBA заполняет все части верхнего и нижнего колонтитулов их наименованиями:
Sub Test1() With ActiveSheet.PageSetup .LeftHeader = «Левая часть верхнего» .CenterHeader = «Центральная часть верхнего» .RightHeader = «Правая часть верхнего» .LeftFooter = «Левая часть нижнего» .CenterFooter = «Центральная часть нижнего» .RightFooter = «Правая часть нижнего» End With End Sub |
Слово «колонтитула» пропущено, чтобы текст разных частей колонтитулов не наезжал друг на друга. Обратите внимание на выравнивание текста в разных частях верхнего и нижнего колонтитулов.
Если в колонтитуле нужна одна строка, можно использовать ту часть колонтитула, которая имеет необходимое выравнивание по умолчанию:
Sub Test2() With ActiveSheet.PageSetup .LeftHeader = «» .CenterHeader = «» .RightHeader = «Текст для правой части верхнего колонтитула с выравниванием по правому краю» End With End Sub |
Удаление колонтитулов
Чтобы удалить колонтитулы из печатной формы, необходимо присвоить всем частям верхнего и нижнего колонтитула пустые строки:
Sub Test3() With ActiveSheet.PageSetup .LeftHeader = «» .CenterHeader = «» .RightHeader = «» .LeftFooter = «» .CenterFooter = «» .RightFooter = «» End With End Sub |
Коды форматирования
Специальные коды VBA Excel для форматирования верхнего и нижнего колонтитулов:
Код | Описание |
---|---|
&L | Выравнивает текст по левому краю |
&C | Выравнивает текст по центру |
&R | Выравнивает текст по правому краю |
&E | Включает или отключает двойное подчеркивание |
&X | Включает или отключает надстрочные символы |
&Y | Включает или отключает подстрочные символы |
&B | Включает или отключает полужирное начертание |
&I | Включает или отключает курсивное начертание |
&U | Включает или отключает одинарное подчеркивание |
&S | Включает или отключает зачеркнутое начертание |
&»fontname» | Указывает наименование шрифта |
&nn | Двузначное число, задающее размер шрифта |
&color | Цвет шрифта, задающийся шестнадцатеричным значением |
&D | Вставка текущей даты |
&T | Вставка текущего времени |
&F | Вставка имени файла (книги) Excel |
&A | Вставка имени рабочего листа |
&P | Вставка номера страницы |
&P+number | Вставка номера страницы плюс указанное число |
&P-number | Вставка номера страницы минус указанное число |
&& | Вставка одного амперсанда |
&N | Общее количество страниц на рабочем листе |
&Z | Вставка пути к файлу |
&G | Вставка изображения |
Примеры форматирования
Примеры форматирования колонтитулов в VBA Excel с помощью специальных кодов.
Пример 1
Пример использования надстрочных и подстрочных символов:
Sub Primer1() With ActiveSheet.PageSetup .LeftHeader = «Левая часть « & «&X» & «верхнего» & «&X» & » колонтитула» .LeftFooter = «Левая часть « & «&Y» & «нижнего» & «&Y» & » колонтитула» End With End Sub |
В результате получаем: «Левая часть верхнего колонтитула» и «Левая часть нижнего колонтитула».
Пример 2
В этом примере задаем шрифт «Times New Roman» с размером 12 и двойным подчеркиванием для строки, вставляемой в левую часть верхнего колонтитула:
Sub Primer2_1() ActiveSheet.PageSetup.LeftHeader = «&»«Times New Roman»«&12&E» & «Шрифт Times New Roman, размер 12, двойное подчеркивание» End Sub ‘или то же самое в более наглядном виде с использованием переменных Sub Primer2_2() Dim fnt As String, txt As String fnt = «»«Times New Roman»«» txt = «Шрифт Times New Roman, размер 12, двойное подчеркивание» ActiveSheet.PageSetup.LeftHeader = «&» & fnt & «&12&E» & txt End Sub |
Пример 3
Указываем полужирный курсив строке, состоящей из текущей даты, времени и имени листа, вставляемой в центральную часть верхнего колонтитула:
Sub Primer3() ActiveSheet.PageSetup.CenterHeader = «&B&I» & «&D &T &A» End Sub |
Пример 4
Вставка изображения в левую часть верхнего колонтитула:
Sub Primer4() With ActiveSheet.PageSetup .LeftHeaderPicture.Filename = «C:UsersEvgeniyDownloadsБезымянный1.png» .LeftHeader = «&G» End With End Sub |
Если изображение не большое, оно появится в колонтитуле, а большая картинка станет фоновым изображением печатных страниц.
сделать в Ворде макросом колонтитул нижний
Автор Ципихович Эндрю, 04 февраля 2017, 13:31
Ципихович Эндрю
- гость
- Записан
Здравствуйте, как сделать в Ворде макросом, чтобы в конце страницы последней строкой было, например
___________ А.А. Петров?
Эта вещь вроде колонтитулы нижние называется, но не сталкивался.
Администратор
- Administrator
- Сообщения: 2,251
- Записан
Вставка текста в первый раздел, в нижний основной колонтитул:
Sub Макрос()
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = «___________ А.А. Петров»
End Sub
Примечания
- Колонтитулы есть в каждом разделе файла. Поэтому, если у вас несколько разделов в файле, то может потребоваться вставлять колонтитулы не в один раздел, а в несколько.
- Колонтитулы есть трёх видов:
1) основной — wdHeaderFooterPrimary
2) колонтитул первой страницы раздела (именно раздела, а не всего файла) — wdHeaderFooterFirstPage
3) колонтитул чётной страницы — wdHeaderFooterEvenPages
Поэтому это нужно помнить. Например, если вы вставили колонтитул, а его не видно, значит в файле нет какого-то колонтитула.
- Форум по VBA, Excel и Word
-
►
Word -
►
Макросы в Word -
►
сделать в Ворде макросом колонтитул нижний
Редактирование таблицы в колонтитуле Word из-под Excel |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |