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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2015, 16:21   #1
Scrooge3
Новичок
Джуниор
 
Регистрация: 22.09.2015
Сообщений: 3
По умолчанию Автозамена в Ворде работает с багом

Всем привет!

Никак не могу разобраться с автозаменой текста в Ворде. Речь идет о замене одного слова на другое автоматически с предварительным указанием в настройках какое слово на какое менять. Замена слова происходит только тогда, когда ставишь курсор после слова и жмешь пробел или Enter, а вот автоматической замены одного слова на другое в автоматическом режиме нету. Что это, баг? Или я что-то не понимаю. Неужели автозамена фактически выполняется в ручном режиме? У меня версия Ворд 2010 года. Хотелось бы, чтобы программа меняла сама слова при открытии файла, без того, чтобы по каждому слово пройтись вручную и нажать пробел.

Спасибо за ответы!
Scrooge3 вне форума Ответить с цитированием
Старый 22.09.2015, 16:57   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Издержки перевода

То, что происходит при открытии и закрытии документов Word, надо описывать в VBE кодами под названием AutoOpen и AutoClose соответственно.

Пример: http://www.cyberforum.ru/vba/thread790698.html#5.

Вот, кстати, корректировка набора, подобную которой я использую уже лет 17: http://www.cyberforum.ru/ms-word/thread1119483.html#8. Если обозвать её AutoOpen — будет выполняться при открытии.

Например, буквосочетание (не слово!) сталинград (независимо от «заглавности» его букв) на Волгоград меняется при открытии так:
Код:
Sub autoopen () 'должен находиться в шаблоне normal либо в VBE открываемого документа

With Selection.Find         'соответствует нажатию Ctrl-h в документе Word (диалог поиска и замены)
    .Text = "сталинград"                'ищет сталинград
    .MatchCase = 0                      'не обращает внимания на регистр букв искомого текста
    .Replacement.Text = "Волгоград"     'меняет на Волгоград
    .Execute Replace:=wdReplaceAll      'во всём основном тексте
End With

End Sub
А та автозамена (по ходу ввода), которой вы недовольны, так и задумана (гл. обр. для борьбы с опечатками). В настройках меню Сервис она так и называется: Автозамена при вводе (или: заменять при вводе).

Последний раз редактировалось Sasha_Smirnov; 23.09.2015 в 01:18. Причина: исправленный пример.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 23.09.2015, 14:39   #3
Scrooge3
Новичок
Джуниор
 
Регистрация: 22.09.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
... которой вы недовольны, так и задумана (гл. обр. для борьбы с опечатками). В настройках меню Сервис она так и называется: Автозамена при вводе (или: заменять при вводе).
Спасибо огромное! Вы не представляете, как много времени Вы мне сэкономили! Я вставляю готовую таблицу с одними и теми же наименованиями, которые до этого вручную очень долго менял. Теперь после того, как я постепенно начал добавлять все наименования в макрос, преобразование таблиц происходит моментально. Я никогда ранее макросами не пользовался. Это здорово! Спасибо Вам!

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

Последний раз редактировалось Scrooge3; 23.09.2015 в 14:46.
Scrooge3 вне форума Ответить с цитированием
Старый 23.09.2015, 14:52   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Обед; смена караула!

Scrooge3, это должен знать каждый…

Последний раз редактировалось Sasha_Smirnov; 24.09.2015 в 13:01. Причина: убрал излишества.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 23.09.2015, 15:21   #5
Scrooge3
Новичок
Джуниор
 
Регистрация: 22.09.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Scrooge3, это должен знать каждый (кто не хочет целый день пропадать на работе).

А серьёзно, то пока я переутомился (над нижележащей темой).

(Кстати, я очень рад, что получился сразу рабочий вариант!)
Спасибо! Да я не настаиваю. И так большое дело сделали. Теперь столько времени удалось сэкономить.
Scrooge3 вне форума Ответить с цитированием
Старый 23.09.2015, 16:03   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Scrooge3 Посмотреть сообщение
А Вы не знаете, как в макросе прописать код так, чтобы я одну заглавную букву, пример - "S", менял на сокращенное слово "станд.", только, чтобы в словах, начинающихся на букву "S", замены не происходило.
я не спец.
но я бы попробовал так:

Код:
With Selection.Find         'соответствует нажатию Ctrl-h в документе Word (диалог поиска и замены)
    .Text = "S"                'ищем S
    .MatchCase = True      ' только прописную букву ищем, регистрозависимый поиск
    .MatchWholeWord = True 'только одиночная буква
    .Replacement.Text = "станд."     'меняем на станд.
    .Execute Replace:=wdReplaceAll      'во всём основном тексте
End With
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.09.2015, 17:53   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Нет-нет, Serge_Bliznykov ещё какой спец!

Просто Word’ом обычно занимаются самоучки и любители. А профи обращаются сюда.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозамена с дублями tootoon Microsoft Office Excel 4 29.10.2013 23:53
Автозамена pusik БД в Delphi 7 01.06.2011 14:36
Автозамена в ворде djexler Microsoft Office Word 1 03.03.2011 07:21
Автозамена из диапазона dokwill Microsoft Office Excel 4 10.07.2010 00:39