Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2013, 15:03   #1
truthseeker
Новичок
Джуниор
 
Регистрация: 07.06.2013
Сообщений: 2
По умолчанию Где находится инфа о кол-ве замененных слов?

Приветствую участников!
Вопрос такой.
При выполнении замены слов при помощи
Find.Execute Replace:=wdReplaceAll
необходимо знать, сколько реально слов было заменено. То есть то число, которое показывает, если делать замену при помощи диалога "Замена".
Я не программист, а продвинутый пользователь, который иногда пишет себе макросы для упрошения некоторых операций
Самостоятельно побродив по объектной модели и отладчику, не нашел ничего похожего, поэтому спрашиваю здесь.
Спасибо!
truthseeker вне форума Ответить с цитированием
Старый 07.06.2013, 21:04   #2
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Все молчат, а инфа есть Именно по Find - нет, зато есть по изменениям в документе, что позволяет узнать количество и области. Пример:
Код:
Sub Количество_замен()
    
Dim N As Long
    
    ActiveDocument.Revisions.AcceptAll ' принимаем все изменения
    ActiveDocument.TrackRevisions = True ' активируем контроль изменения
    With Selection.Find
        .Text = "111" ' найти
        .Replacement.Text = "222" ' заменить
        .Execute Replace:=wdReplaceAll ' поиск и замена
    End With
    N = ActiveDocument.Revisions.Count / 2 ' 1 замена = 1 удаление + 1 вставка
    MsgBox "Замен: " & CStr(N)
    ActiveDocument.TrackRevisions = False ' отключаем
    
End Sub
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 08.06.2013, 01:34   #3
truthseeker
Новичок
Джуниор
 
Регистрация: 07.06.2013
Сообщений: 2
Хорошо

О, Вождь, потому все и молчат, что это, как оказывается, нетривиальное решение!

Спасибо за идею и фрагмент кода. Для меня, думаю, они сработают. Только ещё посмотрю, как ведёт себя AcceptAll.
Но... Неужели Ворд так внутренне подсчитывает, когда производится интерактивная замена через диалог "Замена"? Хм-хм...
truthseeker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кол-во слов в строке alekopoko Общие вопросы C/C++ 1 03.04.2013 20:18
Подсчет кол-ва слов Dima DDM Общие вопросы Delphi 1 25.12.2011 22:20
где находится TPageControl ВалекFCRK Общие вопросы Delphi 4 28.07.2011 23:05
Где находится компонент ТMailMessage? romanzi Работа с сетью в Delphi 0 21.11.2010 11:34
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34