Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Word.Application [D7]


MisteRR ©   (2004-07-13 10:42:00) 

Здравствуйте, уважаемые Мастера!
Прошу прощения за наверняка избитый вопрос, однако, найти работающий пример мне не удалось. В чем беда мне самому понять тоже не удалось.
************************************
Хочется сформировать пакет документов, которые представляют из себя бланки и каждый раз в них подставляется различная информация (ФИО, адрес и т.п.).
В силу ряда причин наиболее простое решение хранить бланки в виде Word-документов. Места для подстановки обозначить закладками.
************************************
Var Wrd : Variant;

Wrd := CreateOleObject('Word.Application');
Wrd.Visible := True;
Wrd.Documents.Open('C:\123.doc');

Далее пробовал различные способы обращения к соответствующему объекту (Bookmark), но все время получал ошибку.

Wrd.ActiveDocument.BookMarks('Bookmark1').Range := '123456';

Wrd.ActiveDocument.BookMarks(0).Range := '123456';

Wrd.ActiveDocument.BookMarks['Bookmark1'].Range := '123456';

Первый вариант железно срабатывает в родной среде (Excel, Access).
Господа, может кто подскажет, что я делаю не так?


European   (2004-07-13 23:53:00) [1]

Как-то раньше я пытал Мастеров по поводу работы с Вордом, однако многие вопросы так и были без ответов. А потом я начал пользоваться записью макросов, как советовали ранее, и многие вопросы отпали


YurikGL   (2004-07-13 21:02:00) [2]


> MisteRR ©   (13.07.04 10:42)  


> Места для подстановки обозначить закладками.

Пример с закладками я приводил, но его не помню т.к. писал на основе макроса VBA.

По сабжу, делал аналогичные вещи. Метода такова.
1) Создаем бланк с расширением, например *.do_, что бы во ворде ничего не испортили.
2) В бланке в нужных местах делаем объекты типа надпись и через макрос ищем их названия и как в них текст занести.
3) В делфи вставляем код из VBА и изменяем что надо.

Такой способ подходит, когда нужно вставлять мало текста, например для формирования титульного листа или колонтитулов.

Способ с закладками реализуется тоже легко.


MisteRR   (2004-07-13 16:45:00) [3]

KSergey, огромное человеческое спасибо!
Вот уж эти приведения типов и всякая такая тупнина примитивщина VB! Для Delphi нужно указывать класс Item, потомок Bookmark, а VB и без этого хорошо, оказывается...


evvcom   (2004-07-13 15:56:00) [4]

В Word и Excel есть удобная веСЧь "Запись макроса". Вот какой макрос получился для поиска закладки:
   Selection.GoTo What:=wdGoToBookmark, Name:="Закладка"
   With ActiveDocument.Bookmarks
       .DefaultSorting = wdSortByName
       .ShowHidden = False
   End With
Теперь экспериментируй.


KSergey   (2004-07-13 15:14:00) [5]

тогда можно тут еще посмотреть

http://www.delphikingdom.com/asp/itemq.asp?mode=1&itemid=3

А вообще яндекс - и давно бы нашли все что нужно
http://delphiworld.narod.ru/_tech_.html
Там раздел отдельно про автоматизацию MS Office. И про закладки.

А так ж все статьи из раздела обязательно прочитать!!! Хотя бы заголовки ;)
http://www.delphikingdom.com/asp/section.asp?ID=16


MisteRR   (2004-07-13 14:55:00) [6]

Я, честно говоря, и на этом сайте поискал, но нашел примеры работы только с объектом Word.Basic. С ним дела обстоят еще сложнее. У меня нет таже описания его объектов, методов, свойств.
Никто не пользуется такими вещами?


KSergey   (2004-07-13 11:40:00) [7]

Вроде на этом сайте я и видел про использование закладок в шаблонах ворда.. с примерами....


Наверх

Титульная страница Поиск, карта сайта Написать письмо