|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Заполнение документа Word из Delphi
Всем доброго дня.
У меня такая ситуевина Заполняю вордовский документ Код:
function TfrmChangeW.FindValues(FindValue,ReplValue: string): Boolean; begin W.Selection.Find.Forward:=True; W.Selection.Find.Text:=FindValue; W.Selection.Find.Replacement.Text:=ReplValue; if W.Selection.Find.Execute(Replace:=2) then Result:=true; end; В тексте все заменяется изумительно, а вот текст в "Надписях" (объект TextBox коллекции Shapes) игнорируется напрочь. У меня этих надписей порядка 2-х десятков и некоторые из них повторяются. Люди добрые! Подскажите как заменить текст в надписях. Последний раз редактировалось NNMakarov, 30.09.2009 в 15:34. |
#2
|
|||
|
|||
Сделай операцию из ворда руками, т.е. добейся, что бы он делал замену в нужном тебе блоке. Потом включи запись макросов, сделай операцию еще раз, останови запись и посмотри текст макроса - к каким объектам ворд там обращается. Ну и потом просто перенеси это в свою программу.
|
#3
|
|||
|
|||
Сделал как ты предлагал.
Получился такой макрос Код:
Sub Макрос1() ' ' Макрос1 Макрос ' Макрос записан 01.10.2009 Nikon ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "#FIO#" .Replacement.Text = "123" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub Код:
function TfrmChangeW.FindValues(FindValue,ReplValue: string): Boolean; const wdFindContinue=1; wdReplaceAll=2; begin W.Selection.Find.ClearFormatting; W.Selection.Find.Replacement.ClearFormatting; W.Selection.Find.Text:=FindValue; W.Selection.Find.Replacement.Text:=ReplValue; W.Selection.Find.Forward:=True; W.Selection.Find.Wrap:=wdFindContinue; W.Selection.Find.Execute (Replace:=wdReplaceAll); Result:=True; end; Последний раз редактировалось NNMakarov, 01.10.2009 в 07:29. |