Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Wd: Замена текста с форматированием

248
07 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Итак, вопрос.

В ворде есть текст (находится в конце некоторых абзацев), который покрашен в синий цвет и сделан мелким шрифтом 9 пт. Мне надо к нему добавить еще полужирность и подчеркивание.

Я написал:

[COLOR="Navy"]Sub Макрос2()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Color = wdColorDarkBlue
.Font.Size = 9
.Text = ""
With .Replacement
.Font.Bold = True
.Font.Underline = True
.Text = ""
End With
.Execute FindText:=" ", ReplaceWith:=" ", Format:=True, _
Replace:=wdReplaceAll
End With
End Sub
[/COLOR]

Но меняются только пробелы. Как заставить обрабатывать все символы?

Спасибо.
267
07 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Во-первых, каждый новый вопрос - в новой теме, ок? Так тут принято.

Во-вторых, твой Word тратит кучу сил на обновление экрана во время работы твоих макросов. Если просмотр "мультфильмов" на экране не есть необходимая цель, рекомендую начинать программу оператором
Application.ScreenUpdating = False
и заканчивать оператором
Application.ScreenUpdating = True
Это убыстрит работу программы и избавит тебя от нервного тика, вызванного созерцанием моргающего экрана.

В третьих, попробуй вместо
.Execute FindText:=" ", ReplaceWith:=" ", Format:=True, _
Replace:=wdReplaceAll
написать
.Execute FindText:="*", ReplaceWith:="*", Format:=True, _
Replace:=wdReplaceAll, MatchWildcards:=True
Надеюсь, сработает.
263
07 декабря 2006 года
koltaviy
816 / / 16.12.2004
offtop:
to Cutty Sark: ты чо живешь в интернете?? Как не зайду.. Уже все отвечено!:)
248
07 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
"Новый вопрос - новая тема". Усвоено.
По поводу мелькания экрана. Я вначале макроса просто сворачиваю окошко ворда ([COLOR="Navy"]Application.WindowState = wdWindowStateMinimize[/COLOR]) и ковыряюсь в PageMakere, пока в фоне крутится макрос.
Но попробую еще дополнительно отключить перерисовку экрана. В любом случае хуже не будет (а может и быстрее заработает).
Докладываю по поводу wildcard. В результате такоого кода весь искомый текст стал действительно пж. и подчеркнутым.. но в виде звездочек.
Это известная проблемка. Wildcard можно использовать только для поиска, но не для замены. А вот в PageMaker'e если в окне поиска и замены не задавать никаких символов, то будет меняться только формат.

ПОЛУЧИЛОСЬ!!!! Надо было так: FindText:="*", ReplaceWith:="".
Т.е. звезду ставить только в первом случае. Ай да мы!:) Das ist fantastisch... Люблю я программирование... :cool:
248
08 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
И вдогонку такой вопросик. А если .Font.Size = то ли 9, то ли 10. Можно ли куда-то подоткнуть оператор [COLOR="Navy"]OR[/COLOR], что бы не прогонять макрос дважды с разными размерами?

(если оффтоп, прошу прощения).
267
08 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Цитата: Dmitry2064
И вдогонку такой вопросик. А если .Font.Size = то ли 9, то ли 10. Можно ли куда-то подоткнуть оператор [COLOR="Navy"]OR[/COLOR], что бы не прогонять макрос дважды с разными размерами?

(если оффтоп, прошу прощения).



Думаю, нельзя. Если только вообще отказаться от указания размера шрифта (если других размеров там не встречается).

267
08 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Цитата: koltaviy
offtop:
to Cutty Sark: ты чо живешь в интернете?? Как не зайду.. Уже все отвечено!:)



По всякому бывает. :)

248
08 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Цитата: Cutty Sark
Думаю, нельзя. Если только вообще отказаться от указания размера шрифта (если других размеров там не встречается).



:(
(придется зарядить двойной прогон - ну и ладно :cool: )

Спасибо. :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог