Хай, народ!
Подскажите, плиз, следующее:
Имеется вордовый файл.
Как в него программно добавить колонтитул?
Необходимо проверять условия:
Если колонтитул имеется (созданный юзверем вручную), то в него следует добавлять строки программно, иначе создавать его.
Заранее благодарю...
ВОт спасибо,хорошо — положите на комод (С)
ICQ — 125974196
Здравствуйте, IgBoris, Вы писали:
IB> Хай, народ! IB>Подскажите, плиз, следующее: IB>Имеется вордовый файл. IB>Как в него программно добавить колонтитул? IB>Необходимо проверять условия: IB>Если колонтитул имеется (созданный юзверем вручную), то в него следует добавлять строки программно, иначе создавать его. IB>Заранее благодарю...
Не так давно не помню кем давался достаточно универсальный ответ на класс подобных вопросов: запускаешь записыватель макросов, делаешь клавишами/мышой что надо, останавливаешь записыватель, ищешь в макросах только что записаный, запускаешь его на редакцию (изменение) и вперед... код анализировать.
Но не все так просто, как на самом деле. Если делать по уму.
Тут фенька в том, что, возможно, придется несколько условий проверять: дело в том, что Ворд помимо различий верхних/нижних колонтитулов различает также: колонтитул первой страницы, четных страниц и главный колонтитул. Главный выводится на нечетных страницах, на первой, если в установках страницы не выбран пункт "различать колонтитул первой страницы" и на четных, если там же не выбран пункт "различать колонтитулы четных страниц". Но это только присказка, так как КАЖДАЯ секция (или раздел) может иметь свой комплект колонтитулов: первой страницы, четных страниц, главный. А может не иметь. Но все это проверяется соответствующими переменными: см. Object Browser (клавиша F2). Там немало найдется, друг Горацио, чему поучиться.
Это примерчик того, как установить главный верхний колонтитул первой секции
А это — схема проверки и изменения главного верхнего колонтитула первой секции
sTmp=trim(ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text)
if sTmp=""then
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text= s & vbCrLf & "Моя новая строка."else
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text= "Моя новая строка."
endif
Здравствуйте, Xumpopena, Вы писали:
X> Не так давно не помню кем давался достаточно универсальный ответ на класс подобных вопросов: запускаешь записыватель макросов, делаешь клавишами/мышой что надо, останавливаешь записыватель, ищешь в макросах только что записаный, запускаешь его на редакцию (изменение) и вперед... код анализировать.
Есть более универсальный совет — открываешь хелп по Office automation API и читаешь
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, EM, Вы писали: EM>Есть более универсальный совет — открываешь хелп по Office automation API и читаешь
Имя файла можешь дать (для Office-2000 или 97)? Или ссылку, если он не поставляется с офисом. А может, я и читал его, просто не знал что он так называется.
Здравствуйте, Xumpopena, Вы писали:
X>Здравствуйте, EM, Вы писали: EM>>Есть более универсальный совет — открываешь хелп по Office automation API и читаешь
X>Имя файла можешь дать (для Office-2000 или 97)? Или ссылку, если он не поставляется с офисом. А может, я и читал его, просто не знал что он так называется.
WinWord -> Редактор макросов -> F1
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, EM, Вы писали: EM>Есть более универсальный совет — открываешь хелп по Office automation API и читаешь
... EM>WinWord -> Редактор макросов -> F1
Понятно.
Выдвигаю следующее соображение: если ты очень хорошо знаешь объектную модель, то — да, вопросов нет.
А попробуй-ка между делом почитать, скажем RTFM к аппарату для завинчивания крышек на бутылки с сорокоградусной, при условии, что ты сию хреновину и в глаза не видел. А вот глазом трезвым взглядом глянешь, посмотришь как и что к чему, вот тогда — стакан и HELP или man. Утрирую, не кипятись.
К чему весь сыр-бор? А к тому, что Office automation API хорош, если ты точно знаешь откуда у этого офиса ноги растут, а если представляешь смутно или отрывчато (а это у нас не редкость: много-ли насчитаешь программеров, которые с ходу и почти полностью дерево объектов того же Word-а отрисуют), тады лучше следующий метод. Записал макрос -> поглядел -> мозгами по полу раскинул -> новый макрос с другими параметрами -> опять регистрами пошуршал -> ... -> анализ корреляций (Как это я смачно завернул!) -> Office automation API. Потому как чтобы сразу хелп применить, нужно знать не только то, что ты хочешь получить, а еще и какими методами. А в контексте исходного вопроса было понятно, что чел не в курсе.
С уваженем.
Xumpopena.