Создание верхнего и нижнего колонтитулов из кода VBA Excel: присвоение текста и его выравнивание, назначение шрифта, его размера, цвета и начертания.
Создание колонтитулов
Верхний и нижний колонтитулы в Excel состоят из трех частей: левой, центральной и правой. Следующий код VBA заполняет все части верхнего и нижнего колонтитулов их наименованиями:
1 2 3 4 5 6 7 8 9 10 |
Sub Test1() With ActiveSheet.PageSetup .LeftHeader = "Левая часть верхнего" .CenterHeader = "Центральная часть верхнего" .RightHeader = "Правая часть верхнего" .LeftFooter = "Левая часть нижнего" .CenterFooter = "Центральная часть нижнего" .RightFooter = "Правая часть нижнего" End With End Sub |
Слово «колонтитула» пропущено, чтобы текст разных частей колонтитулов не наезжал друг на друга. Обратите внимание на выравнивание текста в разных частях верхнего и нижнего колонтитулов.
Если в колонтитуле нужна одна строка, можно использовать ту часть колонтитула, которая имеет необходимое выравнивание по умолчанию:
1 2 3 4 5 6 7 |
Sub Test2() With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "Текст для правой части верхнего колонтитула с выравниванием по правому краю" End With End Sub |
Удаление колонтитулов
Чтобы удалить колонтитулы из печатной формы, необходимо присвоить всем частям верхнего и нижнего колонтитула пустые строки:
1 2 3 4 5 6 7 8 9 10 |
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
Пример использования надстрочных и подстрочных символов:
1 2 3 4 5 6 |
Sub Primer1() With ActiveSheet.PageSetup .LeftHeader = "Левая часть " & "&X" & "верхнего" & "&X" & " колонтитула" .LeftFooter = "Левая часть " & "&Y" & "нижнего" & "&Y" & " колонтитула" End With End Sub |
В результате получаем: «Левая часть верхнего колонтитула» и «Левая часть нижнего колонтитула».
Пример 2
В этом примере задаем шрифт «Times New Roman» с размером 12 и двойным подчеркиванием для строки, вставляемой в левую часть верхнего колонтитула:
1 2 3 4 5 6 7 8 9 10 11 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
Указываем полужирный курсив строке, состоящей из текущей даты, времени и имени листа, вставляемой в центральную часть верхнего колонтитула:
1 2 3 |
Sub Primer3() ActiveSheet.PageSetup.CenterHeader = "&B&I" & "&D &T &A" End Sub |
Пример 4
Вставка изображения в левую часть верхнего колонтитула:
1 2 3 4 5 6 |
Sub Primer4() With ActiveSheet.PageSetup .LeftHeaderPicture.Filename = "C:\Users\Evgeniy\Downloads\Безымянный1.png" .LeftHeader = "&G" End With End Sub |
Если изображение не большое, оно появится в колонтитуле, а большая картинка станет фоновым изображением печатных страниц.