Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 3 ]
- Зарегистрирован: 08.02.2012
- Сообщений: 5
Тема: макрос для разных колонтитулов на листе
В экспресс блоках шаблона хранятся нижние колонтитулы.
Цель: при выполнении макроса в документе на текущей странице добавлять соответствующий макросу нижний колонтитул. (несколько макросов для нескольких колонтитулов).
Пробовал записывать макрос, создавая разделы и отжимая кнопку "как в предыдущем", не получалось. При выполнении записанного макроса вылетала ошибка на месте отжать "как в предыдущем".
Подскажите что делать.
ПС: пользуюсь word 2010, в нём не нашёл вид "колонтитул" как word 2003, его пофиксили?
- Зарегистрирован: 08.02.2012
- Сообщений: 5
Re: макрос для разных колонтитулов на листе
Записанный макрос.
вставляю раздел с новой страницы
вставляю колонтитул
отменяю как в предыдущем разделе
Sub Макрос1()
'
' Макрос1 Макрос
'
'
Selection.InsertBreak Type:=wdSectionBreakNextPage
Application.Templates( _
"C:\Documents and Settings\Userblack\Application Data\Microsoft\Document Building Blocks\1049\14\Built-In Building Blocks.dotx" _
).BuildingBlockEntries("Алфавит").Insert Where:=Selection.Range, RichText _
:=True
Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _
LinkToPrevious
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
При выполнении ругается на отмену как в предыдущем разделе.
Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _
LinkToPrevious
- Зарегистрирован: 08.02.2012
- Сообщений: 5
Re: макрос для разных колонтитулов на листе
из Шаблона ГОСТ для MS Word http://wordexpert.ru/page/shablon-gost-dlya-ms-word
взял код для добавления разделов и отключения флага "Как в предыдущем "
Sub P1()
'
' Макрос разделов
'
'
'Добавление нового раздела с выбором формата листа и ориентации страницы
Dim SectionNumber As Integer
Set CurrentDoc = ActiveDocument ' присвоение переменной имени текущего документа
'Если номер текущей страницы больше 3
'или
'номер текущей страницы равен 2 и свойство "Второй лист титульного" равно false
'или
'номер текущей страницы раввен 1 и свойство "Титульный лист" равно false
With Selection
.InsertBreak Type:=wdSectionBreakNextPage ' Вставка разрыва со следующей страницы
SelectionSectionNumber = .Information(wdActiveEndSectionNumber) 'запоминание номера раздела
.InsertBreak Type:=wdSectionBreakNextPage ' Вставка разрыва со следующей страницы
End With
For SectionNumber = SelectionSectionNumber To (SelectionSectionNumber + 1)
' Запомненный раздел и раздел, следующий за ним
Selection.GoTo What:=wdGoToSection, Which:=wdGoToAbsolute, Count:=SectionNumber
With CurrentDoc.Sections(SectionNumber)
.Headers(wdHeaderFooterFirstPage).LinkToPrevious = False
.Footers(wdHeaderFooterFirstPage).LinkToPrevious = False
.Headers(wdHeaderFooterPrimary).LinkToPrevious = False
.Footers(wdHeaderFooterPrimary).LinkToPrevious = False
.Headers(wdHeaderFooterEvenPages).LinkToPrevious = False
.Footers(wdHeaderFooterEvenPages).LinkToPrevious = False
End With
' Снятие флага "Как в предыдущем" для всех возможных видов колонтитулов
With CurrentDoc.Sections(SectionNumber)
.Headers(wdHeaderFooterFirstPage).Range.Delete ' Удалить верхний колонтитул первой страницы раздела
.Footers(wdHeaderFooterFirstPage).Range.Delete ' удалить нижний колонтитул первой страницы раздела
.Headers(wdHeaderFooterPrimary).Range.Delete ' Удалить верхний колонтитул нечетной страницы
.Footers(wdHeaderFooterPrimary).Range.Delete ' Удалить нижний колонтитул нечетной страницы
.Headers(wdHeaderFooterEvenPages).Range.Delete ' Удалить верхний колонтитул четной страницы
.Footers(wdHeaderFooterEvenPages).Range.Delete ' Удалить нижний колонтитул нечетной страницы
With .PageSetup
.DifferentFirstPageHeaderFooter = False ' Не различать колонтитул первой страницы
.OddAndEvenPagesHeaderFooter = False 'Не различать колонтитулы четных и нечетных страниц
.TopMargin = CentimetersToPoints(1 + PrintTop) ' Отступ от верхнего края страницы
.BottomMargin = CentimetersToPoints(2.5 + PrintBottom) ' Отступ от верхнего края страницы
.LeftMargin = CentimetersToPoints(2.5) 'Отступ от левого края страницы
.RightMargin = CentimetersToPoints(0.5 + PrintRight) ' Отступ от правого края страницы
.HeaderDistance = CentimetersToPoints(0.5) 'От края до вернего колонтитула
.FooterDistance = CentimetersToPoints(0.5) 'От края до нижнего колонтитула
End With
End With
Application.ScreenRefresh 'Обновление экрана
i = SelectionSectionNumber
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 'Вход в нижний колонтитул первого раздела
DoEvents
Application.ScreenUpdating = False
Application.ScreenUpdating = True
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 'Возвращение к основному режиму
Next SectionNumber
End
End Sub
После выполнения макроса курсор переходит на последнюю страницу.
(При выполнении макроса, он вставляет два разрыва со следующие страницы)
Не понимаю как поместить курсор на страницу выполнения макроса 
Сообщений [ 3 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
макрос для разных колонтитулов на листе
Компьютерная грамотность подразумевает под собой умение выполнить на компьютере самые базовые несложные операции и овладеть текстовым редактором настолько, чтобы без проблем создать, оформить, отредактировать и подготовить к печати текст. На портале о Microsoft Office Word вы узнаете про: фоны для word.
Но для работы с большими объемами этого недостаточно. Если вам необходимо расширить свои познания о программе Microsoft Word, то это возможно на форуме сайта Ворд Эксперт, где рассматриваются углубленно проблемы автоматизации, настройки различных версий приложения. На портале о Microsoft Office Word вы узнаете про: изменить шрифт по умолчанию в word 2010.
Тут вы найдете макросы, шаблоны, ответы на вопросы по различным версиям программы.