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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 21:51   #1
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию Программно вставить поле TOC

Доброго времени суток.

Имею файл HTM на 500 таблиц.Задача создать отформатированный файл Ворда.

Если обработку осуществлять непосредственнов в ворде,то времени требуется более часа.
Если все эти данные выводить в RTF формате ,то времени уходит секунд 20.
Самописным кодом я формирую практически все,стили,заголовки,колонтитулы заполняю,поля создаю.
Но одна проблемма-не могу создать поле для оглавления.Нужно ключи создавать.
Есть идея открыть созданный файл RTF в ворде и вставить поле TOC.

Возникает вопрос,это возможно,и если да.то как вставить его кодом.
Заголовки создаются первого уровня.
Ручная работа исключается.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.10.2011, 22:14   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Записал макрорекордером команду создания оглавления:
Код:
Sub Макрос1()
With ActiveDocument
    .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
        True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
        LowerHeadingLevel:=1, IncludePageNumbers:=True, AddedStyles:="", _
        UseHyperlinks:=True, HidePageNumbersInWeb:=True
    .TablesOfContents(1).TabLeader = wdTabLeaderDots
    .TablesOfContents.Format = wdIndexIndent
End With
End Sub
Потом нормально "воспроизводится".
А можно прямо создать поле с нужным текстом:
Код:
Sub Макрос2()
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "TOC \o ""1-1"" \h \z ", PreserveFormatting:=True
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 24.10.2011, 23:23   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Спасибо за макрос2.
Хотел так вставить в RTF
Код:
{\pard\fi0\qr{\fs18 {\field{\*\TOC \o "1-1" \h \z }}}\par}
,не получасется.
буду через открытие файла в ворде макросом вставлять
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно добавить поле Lookup в ADOQuery aquatell БД в Delphi 0 04.05.2011 01:15
как программно заполнить поле на сайте RidersHack Общие вопросы Delphi 4 30.10.2010 14:05
Как программно VBA изменить свойство Обязательное поле в таблице myprog Microsoft Office Access 10 05.10.2010 11:23
Программно задать ключевое поле Drummer_SV Microsoft Office Access 1 13.09.2010 16:49
Как программно связать поле в отчёте FR с полем БД? Mishechka БД в Delphi 0 11.06.2009 15:57