Word: Вставить Shape на каждую страницу (?)

Программирование на Visual Basic for Applications
mamitko
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.08.2006 (Чт) 3:37

Word: Вставить Shape на каждую страницу (?)

Сообщение mamitko » 31.08.2006 (Чт) 3:39

Есть документ MS Word кучей страниц (там встречаются всякие разрывы страниц и разрывы разделов).

Есть острая необходимость На Каждую страницу документа в определенное место (в правый верхний угол) поместить определенный Shape.

Я вполне могу пробежать по страницам документа - ActiveDocument.ActiveWindow.Panes(1).Pages (кстати, а это правильно? Как вообще у документа может быть несколько вариантов разбивки на страницы? -- Panes )

Я пытаюсь помещать шэйпы по координатам учитывая высоты страниц, но они все равно помещаются на первую страницу.

Шаманство с
shp.RelativeVerticalPosition = wdRelativeVerticalPositionPage
shp.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
shp.LockAnchor = False
эффекта не дало.

Помогите, пожалуйста.
Заранее спасибо.

PS
Да, мне нужно вставить номера страниц :)
Но проблема в том, что номера страниц у документа уже есть: в пределах каждого радела есть своя нумерация, а нужна еще одна сквозная.

mamitko
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.08.2006 (Чт) 3:37

Как "пролистать" документ

Сообщение mamitko » 31.08.2006 (Чт) 4:01

Начинаю чуть-чуть шарить.
Он добавляет не на первую страницу, а на "текущую".

Теперь вопрос: как ПРАВИЛЬНО (для этой задачи) перейти на первую страницу, а потом "пролистать" все до последней?

Сейчас в цикле до ActiveDocument.ActiveWindow.Panes(1).Pages.Count
делаю Selection.GoToNext wdGoToPage,

но чувствую, что это не по науке.

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

Спасибо.

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 31.08.2006 (Чт) 7:24

А коллонтитулы использовать?
подписи нет и не будет

mamitko
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.08.2006 (Чт) 3:37

Сообщение mamitko » 31.08.2006 (Чт) 7:45

Колонтитулы используются в хвост и в гриву, если не сказать больше.

В них, как я уже сказал, номера страниц внутри раздела.

Я нигде не нашел, как сделать так, что б у страницы в Word'е было два номера: один внутри раздела, второй -- глобальный для документа.

И даже если это и есть, я не нашел поля, которым можно было бы вставлять разные номера страниц.

Если Вы имеете в виду просто добавлять шейп в колонтитул, то осмелюсь напомнить, что колонтитул повторяется (кто бы мог подумать!) как миниум для всех страниц раздела кроме первой.
Иначе говоря, я при всем желании не смогу вставить туда разные номера (а, как ни странно, номера у разных страниц должны быть разные).

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 31.08.2006 (Чт) 10:17

Как вариант - использовать заголовки и ссылки на них.
подписи нет и не будет

mamitko
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.08.2006 (Чт) 3:37

Сообщение mamitko » 31.08.2006 (Чт) 11:10

Документ уже сформирован пользователем.
Я не могу вставлять в тело документа что-либо.

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 31.08.2006 (Чт) 11:34

Ну разделы то наверняка имеют заголовки. Пометить их соответствующе и в коллонтитулы вставить поля, ссылающиеся на название раздела. Это, конечно, не два вида нумерации (сквозная и пораздельная), но вполне удобный вариант. А вставлять в тело документа на каждой странице шейпы с номером страницы - это не гуд совсем.
подписи нет и не будет

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 31.08.2006 (Чт) 11:47

может просто всавить поля с номером страницы
вставка-поле-нумерация-page
процесс печатания программного кода укрепляет моральные устои С. Каммингс VBA4Dummies
:study:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.08.2006 (Чт) 12:07

Ему вроде ничего вставлять в уже сверстанный код нельзя... А так да, самое лучшее решение вставить поля с нумерацией
Весь мир матрица, а мы в нем потоки байтов!

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 31.08.2006 (Чт) 12:15

$€rg
ему нужна двойная нумерация (сквозная и "пораздельная")
подписи нет и не будет

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 31.08.2006 (Чт) 12:50

не нравиться поле PAGE можно попробовать поле SEQ там хитрая нумерация какая-то

...Я пытаюсь помещать шэйпы по координатам учитывая высоты страниц, но они все равно помещаются на первую страницу...

ActiveDocument.Shapes(1).Anchor. - прикреплять надо, вроде как.

добавлено позже

{={PAGE}+N} где N - количество листов в предыдущем разделе (разделах), вводил ручками для первого лиса каждого раздела, связь с предыдущим надо рвать (иначе никак) ну и чтоб в рамке было надо добавиь нумерацию страницы с пометкой справа и тамошнее поле {PAGE} заменить на поле см. выше, а рамку уже задвигать в любой угол, проделывать операцию для первого листа каждого раздела
процесс печатания программного кода укрепляет моральные устои С. Каммингс VBA4Dummies
:study:


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 96

    TopList