Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 21:48   #1
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Вопрос Оглавление посредством VBA?

Здраствуйте.
Столкнулся с проблемой:
Необходимо макросом создать оглавление, всем заголовкам присвоены соответственные стили.
Что бы понять как вообще эти оглавления собирать воспользовался макрорекордером, вот что получил:
Код:
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
        "Автособираемое оглавление 1").Insert Where:=Selection.Range, RichText:= _
        True
вроде все в порядке, но меня смутило то, что word как обычно воткнул русское название элемента в код: "Автособираемое оглавление 1", пытался найти альтернативный enumeration-значение, но не получилось.
После чего решил попробовать запустить этот макрос, и... Он НЕ сработал, выдал ошибку. что такого элемента нет !!!
И я, соответственно, встал в штопор...
каким макором же можно воткнуть это оглавление. Или, кстати, если можно, было бы проще узнать номер страницы н которой находится какая-нибудь Bookmark, range, character и тд.
Подскажите что-нибудь, заранее благодарен.
tolikman вне форума Ответить с цитированием
Старый 05.11.2009, 07:09   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

tolikman, приветствую в наших Палестинах. Давненько ты к нам не заходил
tolikman, оглавление вставляется с помощью поля TOC (Table Of Content), смотри его.
Номер страницы можно узнать совсем просто. Допустим, нам нужен номер страницы, на которой находится 2876-й символ. Пишем:
Код:
ActiveDocument.Characters(2876).Information(wdActiveEndPageNumber)
Получим номер страницы, на которой этот символ находится.
Если у пользователя нумерация страниц начинается не с 1, то нужно использовать
Код:
ActiveDocument.Characters(2876).Information(wdActiveEndAdjustedPageNumber)
Ну и все то же самое можно сделать с любым объектом, у которого есть свойство Range. Посмотри перечисление wdInformation, там много интересного
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 05.11.2009, 17:40   #3
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Спасибо за помощь! Viter.Alex, в очередной раз выручил. Крайне полезня информация.
tolikman вне форума Ответить с цитированием
Старый 15.10.2014, 14:51   #4
Misha-inc.
Новичок
Джуниор
 
Регистрация: 15.10.2014
Сообщений: 1
По умолчанию

Привет. нужна помощь, потому как все идеи закончились.
Я из Excel создал документ Word в нем указал какие строки будут оглавлением, а создать само оглавление (автособираемое) не получается. Я сгенерил макрорекордером код, но он не работает. Подскажите как наверняка (Office 2007)
Misha-inc. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод в HEX посредством javascript WennY JavaScript, Ajax 5 04.07.2009 23:32
Помогите полусить значение свойства "Редакция" посредством VBA Ir04ka Microsoft Office Word 1 25.05.2009 21:49
Разархивация посредством Delphi Dark_Chr0n0 Компоненты Delphi 5 19.02.2009 11:17
Клиент-серверное взаимодействие посредством использования сокетов Cantana Компоненты Delphi 2 18.02.2008 19:27
Перенос нескольких файлов посредством VBA Victor Microsoft Office Excel 5 09.12.2007 23:25