![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем доброго дня.
У меня такая ситуевина Заполняю вордовский документ Код:
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. |