Расширенный поиск по документу Word. Подстановочные знаки

Пришлось поработать с вордом – полезная справка по поиску и замене символов :

Искомый элемент

Подстановочный знак

Пример

Один символ

Выражение «к?т» позволяет найти слова «кот» и «кит».

Любая последовательность символов

Выражение «в*д» позволяет найти слова «вход» и «выход».

Начало слова

Выражение «<(сол)» позволяет найти слова «солнце» и «солист», но не слово «фасоль».

Конец слова

Выражение «(ель)>» позволяет найти слова «ель» и «шрапнель», но не слово «ельник».

Один из указанных символов

Выражение «кр[еа]н» позволяет найти слова «крен» и «кран».

Любой символ из указанного диапазона

Выражение «[з-ф]абор» позволяет найти слова «забор» и «табор». Диапазон должен быть указан в порядке возрастания.

Любой символ, кроме символов, которые находятся в диапазоне, указанном в скобках

[!э-я]

Выражение «к[!е-р]а» позволяет найти слова «кода» и «коса», но не слова «кожа» и «кора».

Предыдущий символ или выражение, повторенные n раз

Выражение «рас{2}чет» позволяет найти слово «рассчет», но не слово «расчет».

Предыдущий символ или выражение, повторенные не менее n раз.

Выражение «рас{1,}чет» позволяет найти слова «расчет» и «рассчет».

Предыдущий символ или выражение, повторенные от n до m раз

Выражение «10{1,3}» позволяет найти числа 10, 100 и 1000.

Предыдущий символ или выражение, повторенные не менее одного раза

Выражение «больше@» позволяет найти слова «больше» и «большее».

Искомый элемент

^p (не действует в поле Найти , если установлен флажок Подстановочные знаки ) или ^13

)

^t или ^9

Символ ASCII

^ nnn, где nnn - код символа

Символ ANSI

^0 nnn, где 0 - нуль, а nnn - код символа

Длинное тире (-)

Короткое тире (–)

Знак крышки

)

^l или ^11

Разрыв столбца

^n или ^14

Разрыв раздела или страницы

^12 (при замене добавляется разрыв страницы)

Принудительный разрыв страницы

^m (применяется также для поиска и замены разрывов разделов, если установлен флажок Подстановочные знаки )

)

Неразрывный дефис ()

Мягкий перенос ()

Коды, которые можно использовать только в поле Найти (если флажок Подстановочные знаки снят)

Искомый элемент

Любой символ

Любая цифра

Любая буква

Рисунок или графический объект (только в тексте)

Знак сноски

^f или ^2

Знак концевой сноски

Поле (если отображаются коды полей)

^d или ^19 , или ^21

Примечание (если примечания находятся в тексте)

^a или ^5

Разрыв раздела

^w (пробел или любая комбинация обычных и неразрывных пробелов и знаки табуляции)

Microsoft Word предоставляет необыкновенно мощный инструмент для поиска и замены. Умение грамотно им пользоваться существенно упрощает редактирование и правку документов. В этом разделе подробно освещается использование специальных знаков в операциях поиска и замены; приведен ряд примеров.

Рассмотрим простой случай поиска и замены. Требуется заменить во всем документе фамилию Иванов на Петров . Это легко производится с помощью стандартной процедуры поиска и замены. Однако, поскольку фамилия Иванова в документе может быть в разных падежах и числах , то придется выполнить последовательно много замен.

Использование специальных знаков позволяет выполнить поставленную задачу сразу за один прием .

Другой пример. В документе очень много десятичных дробей. Часть дробей набрана через точку, часть - через запятую. Требуется произвести такую замену, чтобы сделать написание всех дробей единообразным.

Оказывается, для этого надо выполнить всего одну операцию поиска и замены с использованием специальных знаков .

Более сложный пример видоизменения текста. Дан большой документ, содержащий текст словаря компьютерных терминов следующего вида:

Документ без названия

В тексте нет никаких текстовых выделений. Общее число словарных статей - например, около 30000.

Требуется:

    1. Найти все переводимые английские термины и выделить их полужирным начертанием. При этом все другие английские слова оставить в неприкосновенности.

    2. Дефис между английским термином и его переводом заменить на тире . При этом все другие дефисы оставить в неприкосновенности.

    3. Абзацы с английским термином отодвинуть от предыдущего на 2 пункта и обеспечить выступ этих абзацев на 0.25 см.

Для выполнения задачи нужно найти все 30000 фрагментов текста, отвечающих вышеприведенным условиям, сделать 30000 выделений полужирным начертанием и 30000 замен дефиса на тире, а также осуществить сдвиг абзацев.

Можно ли это сделать менее, чем за 1 минуту?

Да можно. Для этого надо выполнить одну операцию поиска и замены с использованием специальных знаков.

Решение этих задач приводится в конце раздела.

В Microsoft Word существуют два типа специальных знаков - специальные символы и подстановочные знаки . Те и другие удобно вводить в строки поиска и замены, используя кнопку «Специальный» в диалоге поиска и замены.

Специальными символами называют символы, которых нет на клавиатуре и/или которые невозможно непосредственно вписать в строку поиска или замены. Например, принудительный обрыв строки, мягкий перенос, неразрывный пробел и т. п.

Подстановочные знаки используются для формирования по определенным правилам сложных условий поиска и замены. С их помощью можно задавать диапазоны символов и выражения, отвечающие ряду условий. Чтобы получить возможность использовать подстановочные знаки, следует включить опцию «Подстановочные знаки» в диалоге поиска и замены.

Приведем полный список символов и знаков и примеры их использования.

Документ без названия

Документ без названия

Спец. символы

Что обозначают

Символ табуляции (→)

Комментарий


Если опция Use wildcards включена, то будут находиться и принудительный разрыв страницы, и разрыв раздела.

Неразрываемый пробел (°)

Неразрываемый дефис (-)

Мягкий перенос (¬)

Документ без названия

Спец. знаки

Что обозначают

Пример строки поиска

Что будет находить

Один любой символ

бак , бок , бук , б5к , б¶к и т. п.

Любое число любых символов

бык , бардак , белый.¶
Полковник
и т. п.

Один из указанных символов

бак , бок , бук

Один символ из диапазона.
Диапазон должен быть указан в порядке возрастания кодов символов.

Любая строчная русская буква

Любая прописная русская буква

Любая цифра

Один любой символ не указанный после восклицательного знака

бак , бок и т. п., но не бык

Один любой символ не входящий в диапазон указанный после восклицательного знака

Бок , Док и т. п., но не бок , док

Любой символ кроме цифр

Строго n штук предыдущего символа или выражения. Выражением является все то, что заключено в круглые скобки. Выражение может состоять как из конкретных символов, так и содержать спец. знаки.

1000 , но не 100 , 10000

102020 , но не 1020 , 10202020

n и более штук предыдущего символа или выражения

1000 , 10000 , 100000 и т. д., но не 100

От n до m штук предыдущего символа или выражения

1000 , 10000 , но не 100 , 100000

один или более штук предыдущего символа или выражения

10 , 100 , 1000 , 10000 и т. д.

Начало слова

бок сер, но не колобок

Конец слова

колобок , но не бок сер

Документ без названия

Спец. символы

Что обозначают

Символ конца абзаца (¶)

Символ табуляции (→)

Любой ANSI или ASCII символ с кодом nnn

Содержимое буфера обмена

Содержимое строки поиска (или то, что найдено)

Разрыв колонки (···Column Break···)

Принудительный разрыв строки ()

Принудительный разрыв страницы (--Page Break--)

Длинное тире (-). Символ с кодом 0151.

Короткое тире (–). Символ с кодом 0150.

Неразрываемый пробел (°)

Неразрываемый дефис (-)

Мягкий перенос (¬)

Документ без названия

Знаки

Что обозначают

Выражение номер n из строки поиска

Точка с запятой в операторах {n;} и {n;m} - это не просто точка с запятой, а, так называемый List separator (Разделитель элементов списка). В США - это запятая, в России - точка с запятой. Чтобы точно узнать, какой символ играет роль разделителя элементов списка в вашей конфигурации, загляните в Панель управления\Язык и стандарты\Числа\Разделитель элементов списка.

Для поиска в документе знаков, которые в строке поиска используются как специальные, необходимо набирать перед ними обратный слэш (\). Например, если включена опция «Подстановочные знаки», то, чтобы искать восклицательный знак, надо в строке поиска набрать обратный слэш и за ним восклицательный знак (\!).

Опция «Подстановочные знаки» должна быть включена в диалоге поиска и замены. Это условие должно соблюдаться для всех приведенных ниже примеров.

Документ без названия

Строка поиска

Что будет находить

[!^0013]^0013[!^0013]

Одиночный конец абзаца в окружении двух любых других символов.(Подробный разбор см. ниже).

Два и более конца абзацев

Два и более символов пробела

Любой знак препинания (. , : ; ! ?)

Две любые цифры разделенные пробелом

^0032

Цифра и буква (английская или русская), разделенные пробелом. (Подробный разбор см. ниже).

Дефис и цифра

<@-@>

Два целых числа, разделенные дефисом

Цифра в круглых скобках

Целое число (точнее, непрерывная последовательность цифр)

<@,@>

Десятичная дробь, набранная через запятую

Английское слово

<[А-яЁё]@>

Русское слово

<[А-ЯЁ][а-яё]@>

Русское слово, набранное строчными буквами, но с прописной. (Подробный разбор см. ниже).

[!^0013]^0013[!^0013]

Документ без названия

1-й символ строки поиска

2-ой символ

3-й символ

Конец абзаца

Любой символ, но не конец абзаца

Конец абзаца (символ с кодом 0013).

В квадратных скобках указан символ с кодом 0013 (конец абзаца).
Знак «!» указывает на то, что в этой позиции может находится любой символ, кроме конца абзаца.

Таким образом, мы указали поиску, что будем искать последовательность из трех символов. Средний должен быть концом абзаца, а первый и третий могут быть любыми, но не концами абзаца.

^0032

Документ без названия

1-й символ строки поиска

2-ой символ

3-й символ

Любая цифра

Любая буква (английская или русская)

В квадратных скобках указан диапазон знаков от 0 до 9, т. е. цифры.

Пробел (символ с кодом 0032).

Допустимый символ определен тремя диапазонами и двумя конкретными символами.
A - Z - английские прописные буквы;
а- z - английские строчные буквы;
А-я - русские прописные и строчные буквы;
Ёё - прописная и строчная ё (чтобы охватить весь русский алфавит).

Таким образом, мы указали поиску, что будем искать последовательность из трех символов. Первый может быть любой цифрой, второй - только пробелом, а третий - любой английской или русской буквой.

<[А-ЯЁ][а-яё]@>

Документ без названия

1-я позиция строки поиска

2-я позиция

Любая русская прописная буква

Любые русские строчные буквы

В квадратных скобках указан диапазон знаков от А до Я и Ё (т. е. любая русская прописная буква).
Знак «<» указывает на то, что прописная буква должна быть в начале слова.

Диапазон в квадратных скобках определяет все русские строчные буквы.
Знак «@» говорит о том, что число русских строчных букв может быть равным или больше нуля.
Знак «>» указывает на конец слова.

Таким образом, мы указали поиску, что будем искать последовательность из двух символов. Первый может быть любой прописной русской буквой, а второй - любой строчной русской буквой.

Для работы с выражениями включите опцию «Подстановочные знаки».

В строке поиска выражением является все то, что заключено в круглые скобки, которые в этом случае выступают в роли специальных знаков. Выражение может состоять как из конкретных символов, так и содержать подстановочные знаки или специальные символы. Порядок следования выражений определяет их нумерацию.

В строке замены выражения представляются в виде: \n, где n - номер выражения в строке поиска.

Будем редактировать предложение: Настя ест яблоки.

Документ без названия

Документ без названия

Строка поиска

Строка замены

Результат поиска и замены

([!^0013]^0013)([!^0013])

Вставка пустой строки между теми абзацами, между которыми ее не было.

Удаление пустых строк

Замена двух или более пробелов на табуляцию

^0032([.,:;\!\?])

Удаление пробела перед знаком препинания (. , : ; ! ?)

()^0032()

Замена пробела между цифрами на неразбиваемый пробел

()^0032()

Замена пробела между цифрой и буквой (английской или русской) на неразбиваемый пробел

Замена дефиса перед цифрой на минус

Замена круглых скобок вокруг цифры на квадратные

1. Замена в документе фамилии Иванов на фамилию Петров сразу во всех падежах:

Документ без названия

Конечно, такая замена возможна только с фамилиями, у которых одинаковые падежные окончания .

2. Требуется произвести такую замену, чтобы сделать написание всех дробей единообразным, когда часть дробей набрана через точку, часть - через запятую.

Вот два варианта этой замены:

Документ без названия

3. Обработка текста словаря компьютерных терминов.

Вот как это решается за минуту:

Сначала весь текст форматируется так: Формат->Абзац->Отступ слева 0.25 см. Для строки замены с помощью кнопки «Формат» необходимо предварительно установить: «Шрифт » начертание Полужирный, «Абзац » Отступ слева 0 см, «Абзац » Интервал перед 2 пт.

Затем производится установка в строках поиска и замены:

Документ без названия

Строка поиска

Строка замены

(^0013@)^0032-

После этого следует нажать на кнопку «Заменить все». В результате:

    Все переводимые английские термины выделяются полужирным начертанием. При этом все другие английские слова остаются в неприкосновенности.

    Дефис между английским термином и его переводом заменяется на тире. При этом все другие дефисы остаются в неприкосновенности.

    Абзацы с английскими терминами отодвигаются вниз от предыдущих абзацев с объяснением термина и выдвигаются влево.

Т. е., во всех, например, 30000 фрагментах текста, отвечающих вышеприведенным условиям, производится 30000 требуемых изменений и получается следующее:

Документ без названия

Alpha (nu ) meric display - буквенно-цифровой (символьный) дисплей.
Дисплей, предназначенный для работы с буквенной, цифровой и сопутствующей
символьной информацией.
Alpha (nu ) meric keyboard - буквенно (алфавитно)-цифровая клавиатура.
Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку
символьного набора.
Alternate key - альтернативный ключ.
Ключ поиска в базе данных, не указанный в качестве первичного ключа.
Alternate Mark Inversion (AMI) - чередующаяся инверсия единиц.; http://members.xoom.com/sergeymh

6. Воронин А. Простая вёрстка в Word. Microsoft Word 2002 XP. - М.: «СПАРРК», 2003. - 352 с.

7. Технология полиграфического производства. Часть 1. Издательские и наборные процессы. Лабораторные работы для специальности 051900 «Графика». М.: МГУП, 2002. - 60 с.

В Word есть очень мощный инструмент поиска, при помощи которого можно находить информацию практически по любому типу условий. Существуют специальные подстановочные знаки, которые позволяют искать информацию по определённому шаблону или заданной последовательности символов.

Поиск с подстановочными знаками осуществляется в диалоговом окне Find and Replace (Найти и заменить). Мы познакомим Вас с основными правилами использования этого инструмента, чтобы Вы научились находить в документах Microsoft Word практически все, что угодно.

Откройте файл Word и нажмите сочетание клавиш Ctrl+H , чтобы открыть диалоговое окно Find and Replace (Найти и заменить). Кликните по More (Больше), чтобы развернуть диалоговое окно и получить доступ к дополнительным параметрам.

Примечание: Если вместо кнопки More (Больше) Вы видите кнопку Less (Меньше), нажимать ничего не нужно. Диалоговое окно уже развёрнуто.

Поставьте галочку напротив опции Use wildcards (Подстановочные знаки). Обратите внимание, что под полем Find what (Найти) появилась соответствующая надпись.

Примечание: Когда параметр Use wildcards (Подстановочные знаки) включен, Word ищет только точное совпадение с заданным текстом. Параметры Match case (Учитывать регистр) и Find whole words only (Только слово целиком) недоступны и затенены серым, чтобы продемонстрировать, что они включены автоматически и их нельзя отключить, пока выбран параметр Use wildcards (Подстановочные знаки).

Для примера найдём все повторения текста, начинающегося на “t” и заканчивающегося на “e” с любым количеством символов между этими буквами. Для этого введите “t” в поле Find what (Найти) и нажмите кнопку Special (Специальный) внизу диалогового окна. В появившемся меню выберите 0 or More Characters (Любое число знаков) или звёздочку (*).

Примечание: Если Вы знаете, какой именно специальный символ нужно использовать, можете ввести его непосредственно в поле Find what (Найти). Кнопка Special (Специальный) даёт подсказку на тот случай, если Вы не помните, какие спецсимволы доступны и каково их назначение.

Поисковый запрос поступит в обработку. Когда найдётся первое совпадение, нажимайте кнопку Find Next (Найти далее), чтобы найти следующие фрагменты текста, соответствующие запросу.

Чтобы отыскать текст, содержащий один любой символ, используйте знак вопроса (?). Например, если ввести запрос “d?g” в поле Find what (Найти), будут найдены все слова, состоящие из трёх букв, начинающиеся на “d” и заканчивающиеся на “g”, например, “dig”, “dug”, “dog”.

Ещё можно определить конкретные буквы для поиска, указав их в квадратных скобках “”. Например, если ввести запрос “bt” в поле Find what (Найти), будут найдены слова “bat”, “bet”, “bit”, “bot” и “but”.

Если параметр Use wildcards (Подстановочные знаки) включен, а Вам нужно найти один из символов, который используется как подстановочный, поставьте слэш (/) перед этим символом и запустите поиск. Например, чтобы найти вопросительный знак при включенном параметре Use wildcards (Подстановочные знаки) нужно ввести запрос “/?” в поле Find what (Найти).

Кроме того, подстановочные символы можно использовать для замены текста. Например, подстановочный символ “/n” (здесь n – это номер слова, которым заменяем) можно использовать для поиска выражения и дальнейшей его замены другим выражением. К примеру, мы ввели “(Kaufman) (Lori)” в поле Find what (Найти), а в поле Replace with (Заменить на) – “/2 /1” (не забудьте поставить пробел между цифрой 2 и вторым символом “/”). В итоге Word находит “Kaufman Lori” и заменяет на “Lori Kaufman”.

ОПТИМИЗАЦИЯ КОДА

  • Для определения количества символов в части документа используйте свойство StoryLength или функцию Len() , но не команду Characters.Count , которая выполняется довольно долго, если символов много.
  • В проверках (If , Select и др.) сравнивайте с проверяемым значением - с тем, что должно быть.
    • Пример. При проверке на True правильно писать:
      If N <> True Then
      Часто ошибочно пишут:
      If N = False Then
      Если N имеет тип отличный от boolean , код может не сработать.
  • Оптимизация перебора массива (Array ):
    • Быстро:
      For i = LBound(Array) to UBound(Array)
      Next i
    • Медленно:
      For Each V in Array
      Next V
  • Оптимизация перебора коллекции (Collection ):
    • Быстро:
      For Each V in Col
      Next V
    • Медленно:
      For i = 1 to Col.Count
      V = Col(i)
      Next i
  • При массовой проверке строк, Len(S) = 0 медленее чем S = "" .
  • Быстродействие перехода по условию:
    • Оператор On ... GoSub ... на порядок быстрее чем Select Case .
    • Select Case вообще медленная проверка, If работает быстрее.
  • Оптимизация перебора символов (Character ) и т.п.:
    • Медленный способ:
      Dim R As Range
      For Each R In ActiveDocument.Characters
      Next R
    • Средний способ:
      Set R = ActiveDocument.Characters.First
      Do
      Set R = R.Next
      Loop While Not (R Is Nothing)
    • Быстрый способ:
      Set R = ActiveDocument.Range(0, 0)
      Do
      Loop While R.Move = 1
  • Оптимизация перебора параграфов (Paragraph ) и т.п.:
    • Медленный способ:
      Dim P As Paragraph
      For Each P In ActiveDocument.Paragraphs
      Next P
    • Средний способ:
      Set P = ActiveDocument.Paragraphs.First
      Do
      Set P = P.Next
      Loop While Not (P Is Nothing)
    • Быстрый способ:
      Dim R As Range
      Set R = ActiveDocument.Range(0, 0)
      Do While R.Move(Unit:=wdParagraph) = 1
      Set P = R.Paragraphs.First
      Loop
  • Безопасное применение цикла For Each
    • Если, в ходе обработки группы элементов документа, сама коллекция изменяется (удаляются или добавляются элементы), то циклом For Each могут быть пропущены некоторые элементы (из тех, что были при запуске цикла) .
    • Пример, где может случится пропуск, и удалены будут не все рисунки:
      Dim SH as Shape

      SH.Delete
      Next
    • Что бы пример работал без сбоев, надо создать временную коллекцию и запомнить в ней все элементы:
      Dim COL as New Collection, SH as Shape
      For Each SH in Selection.Range.ShapeRange
      COL.Add Item:=SH
      Next
      For Each SH in COL
      SH.Delete
      Next
  • При обращении к объекту, впереди его имени желательно и полезно указывать его родителя. Достаточно одного - Parent.Object , но можно и всю цепочку - Parent1.Parent2.Parent3.Object .
    • Пример. В документе в редакторе VBA мы создали форму (UserForm ) с именем "МояФорма", а затем, для ее запуска, в текст документа вставили кнопку (элемент управления CommandButton ), которую также назвали "МояФорма", что естественно и удобно. Теперь, если в макрос нажатия кнопки вставить код МояФорма.Show , то при компиляции ошибки не будет, а вот при запуске мы ошибку получим. Правильно было написать Project.МояФорма.Show , а так мы обратились не к форме, а к кнопке. Если же хотим обратиться к кнопке, то надо писать ThisDocument.МояФорма .
  • Для назначения типов, удобно использовать специальные символы: String - $, Integer - %, Long - &, Single - !
    • Пример: Dim Строка$, Целое%, Длинное&, Вещественное!
  • Для повышения совместимости, имена констант Word лучше заменять их значениями. Это касается языков, списков, полей и др. То есть, в коде пишем 1049, а не wdRussian .
  • В математических формулах, что пишем в коде, надо использовать круглые скобки, чтобы в первую очередь выполнялись операции, уменьшающие промежуточный результат. То есть, сначала - деление и вычитание, потом - умножение и сложение. Иначе, если на каком-то этапе расчета число окажется слишком большим, получим ошибку № 6 "Overflow" - переполнение. Так же, непосредственно в формуле, можно привести тип чисел к Long , например, ибо по умолчанию имеем Integer .
    • Пример. Так будет ошибка:
      Dim V as Variant
      V = 999 * 999 / 999
      V = (999 * 999) / 999
    • А так нет, хотя математически результат один:
      V = 999 * (999 / 999)
      V = 999& * 999 / 999
      V = CLng(999) * 999 / 999
  • Избегайте избыточного изменения документа. Не надо слову назначать жирный шрифт, если оно уже жирное. Проверяйте необходимость изменений. Word реагирует на любые операции с документом, что сказывается на быстродействии. При большом количестве избыточных правок, разница по времени просто гигантская, если добавить простую проверку.
  • Учитывайте параметры автозамены Word, которых становится все больше, от версии к версии.
    • Во-первых, при каждом изменении документа, в том числе макросом, Word выполняет свои автоматические операции. Чем больше изменений и чем больше автозамен, тем медленнее работает макрос.
    • Во-вторых, может случится такое, что макрос правит какой-то текст, а Word тут же подправляет его по-своему, согласно настроек автозамены. Это может быть полезным, при замене кавычек, например, но не всегда.
  • При длительной обработке документа макросом, отключайте автоматические функции Word. Иначе, и обработка замедлится, и Word может зависнуть.
    • Пример. Вы берете большой документ, выполняете его обработку макросом, но Word при этом зависает. Даже не разбираясь в макросах, можно попробовать сделать следующее:
      • Откройте обрабатываемый документ.
      • Перейдите в параметры Word, где отключите:
        • Сохранение > Автосохранение документа (обязательно).
        • Правописание > Автоматическая проверка орфографии и грамматики (желательно).
        • Правка > Учитывать пробелы (желательно).
        • Параметры автозамены (по желанию, уж слишком их много).
      • Запустите макрос. Дождитесь его завершения.
      • Верните параметры Word в исходное состояние.
  • Крайне медленно работает обращение к элементу документа по его индексу. Речь о символах, словах, предложениях, абзацах и др. Чем больше элементов в документе, тем "тормоза" более заметны.
    • Пример. Вместо прямого обращения к знаку:
      Document.Characters(N)
      лучше используйте поиск нужных знаков:
      Document.Range.Find
      в крайнем случае, перебор знаков в цикле:
      For Each C In Document.Characters

КОНТРОЛЬ ОШИБОК (On Error )

  • Код, вносящий изменения в документ, защищайте On Error .
  • Вместо команды Err.Clear , можно использовать On Error Resume Next , которая также очищает последнюю ошибку. В плане надежности это даже полезно.
  • В приведенной ниже структуре, выполняемую часть помещать после Else. Так как, при ошибке в проверке, выполняется блок Then :
    • On Error Resume Next
      If ... Then ... Else ...
  • Если контроль ошибок отключен и происходит присвоение переменной, то при ошибке переменная сохранит старое значение. Поэтому, предварительно, надо сбросить значение переменной.
    • Пример с ошибкой:
      N = 1
      On Error Resume Next
      N = CLng("") " Run-time error 13
      if N = 0 Then Exit Sub
    • Рабочий пример:
      On Error Resume Next
      N = 0: N = CLng("")
      if N = 0 Then Exit Sub
    • Правильно:
      On Error Resume Next
      N = CLng("")
      if Err.Number <> 0 Then Exit Sub

РЕЖИМ ПРОСМОТРА ДОКУМЕНТА (View.Type )

  • В случае когда, в интерфейсе Word, выбран элемент вне окна активного документа, отдельные свойства и методы активного документа могут быть недоступны.
    • Пример. Если в Word 2003 кликнуть правой кнопкой мыши пункт на панели "Схема документа", то документ останется активным, но при обращении к стилю абзаца произойдет ошибка:
      • MsgBox ActiveDocument.Paragraphs.First.Style.NameLocal " Run-time error 4605
    • Одним из вариантов лечения может быть код:
      • ActiveDocument.Windows(1).Panes(1).Activate
  • Selection ведет себя по-разному в различных режимах просмотра документа.
  • При обработке макросами, старайтесь использовать режим просмотра "Обычный" (wdNormalView ). Это повышает быстродействие. Особенно при работе с таблицами.
  • При переключении режима просмотра, может изменится Selection.Range , т.к. есть режимы, где отображаются не все элементы документа.
    • Пример. В режиме просмотра "Обычный" / "Черновик" (wdNormalView ) не видны объекты. И если, в режиме "Разметка страницы" (wdPrintView ), выбрать текст внутри надписи, то, при смене режима на "Обычный", схлопнется Selection.Range .

ПОИСК (Range.Find )

  • Подстановочные знаки
    • По одному и тому же шаблону, с подстановочными знаками, поиск вперед и назад может дать разные результаты. Тестируйте поисковые шаблоны, что бы знать, какие подходят для поиска вперед, а какие назад.
    • Поиск с подстановочными знаками "@" и "{1;}"
      • Дает не одно и тоже.
        • Пример. При поиске вперед в тексте "111+222+333":
          • по шаблону "1@" будет найден один символ "1", а по "1{1;}" - цепочка символов "111"
          • по шаблону "[!2]@+" будет найден текст "111+", а по шаблону "[!2]{1;}+" ничего не будет найдено
      • При сложном поиске, особенно в обратном направлении, больше подходит "@".
        • Пример. Поиск назад в тексте "Один Два Три" по шаблону "<[А-Я]{1;}[А-Яа-я]{1;}>" не даст результата, в отличие от "<[А-Я]@[А-Яа-я]@>".
      • По опыту, более стабильным является "{1;}".
        • Пример. Лучше использовать"<[А-Я]{1;}>", а не "<[А-Я]@>". Результат одинаков, но первый вариант надежнее.
    • Подстановочный знак \n, где n=1,2,3...:
      • Можно использовать не только в поле "Заменить" но и в поле "Найти".
        • Пример. Если ищем по шаблону "(ма)\1", то найдем текст "мама".
        • Пример. Можно искать повторяющиеся слова. Поиск слова встречающегося в тексте пять раз: "(<*>)*\1*\1*\1*\1".
      • Замененный текст, в некоторых случаях, наследует формат впередистоящего.
        • Пример. Если искать "(?)X" и заменять на "\1Y" то, когда первый символ найденного текста подстрочный, а второй нет, после замены и второй станет подстрочным. Поиск "X(?)" и замена на "Y\1" не приводит к наследованию.
    • Спецсимвол "!" при поиске с подстановочными знаками:
      • Использовать осторожно. Слишком глобально и много исключений, предусмотреть которые очень трудно.
      • Будут найдены только простые символы.
        • Пример. Поиск по шаблону "[!A]" не найдет графический объект, гиперссылку и т.п.
        • Пример. Поиск в таблице с обычным текстом по шаблону "Дом[!^12]{1;}" найдет текст от слова "Дом" до конца ячейки (тот же результат дает поиск назад по шаблону "Дом*").
    • При поиске с подстановочными знаками, старайтесь не использовать знак конца абзаца "^13" вместе со скобками. Замечено нестандартное поведение.
      • Пример. Если попробуем две точки в конце абзаца заменить одной, т.е. ищем "([!.].).(^13)" и заменяем на "\1\2", то в параграфе со списком получим интересный глюк.
    • При поиске и замене с помощью скобок (подстановочные знаки), поиск надо повторять дважды, когда заменяемая часть находится не в конце искомого текста.
      • Пример. При поиске "(X)+(X)" и замене на "\1=\2" в тексте "X+X+X+X+X" получим "X=X+X=X+X". Т.е. поиск надо повторить дважды или, выполняя поиск пошагово, корректировать оставшуюся область поиска.
    • Поиск с подстановочными знаками не работает с полями. То есть, с его помощью невозможно найти текст внутри поля.
    • Осторожно используйте длинные, сложные шаблоны поиска с подстановочными знаками. Бывают такие сочетания "шаблон поиска + обрабатываемый им документ", что подвешивают Word намертво. То есть, в одном документе все работает, а в другом - виснет. Чем проще, тем лучше.
  • Оптимизация массовых замен
    • Медленный способ, как ни странно:
      Range.Find.Execute Replace:=wdReplaceAll
    • Быстрый способ, особенно при больших объемах:
      Range.Find.Execute Replace:=wdReplaceNone
      If Range.Find.Found Then
      Range.Collapse wdCollapseStart
      Range.Find.Execute Replace:=wdReplaceAll
      End If
    • Самосброс. Некоторые параметры поиска, Word меняет самостоятельно. Есть взвимозависимые параметры, когда один параметр сбрасывается при изменении вами другого. Есть параметры сбрасываемые Word в результате запуска вами поиска. Поэтому, при массовых заменах, советую для каждой замены прописывать все параметры.
  • Поиск, разное
    • При поиске стиля, наблюдаем интересный глюк в абзаце перед таблицей. Абзац стилизован одним стилем. При поиске назад, все в порядке. А вот при поиске вперед, сначала поиск находит абзац без знака абзаца, а при продолжении поиска - знак абзаца. Что через диалог, что макросом.
    • При замене текста, удаляются или повреждаются закладки:
      • Удаляются закладки, попадающие в заменяемый текст.
      • Удаляется закладка, область которой совпадает с заменяемым текстом.
      • Закладка, охватывающая часть текста, обрезается и вытесняется за текст.
      • Сохраняется точечная закладка, стоящая с края текста.
    • Всегда продолжайте поиск с конца найденного блока. Например, с конца параграфа, а не с начала следующего. Иначе велика вероятность зацикливания, особенно в таблицах.
    • Поиск без текста - только формата (жирный, наклонный шрифт и т.п.), начинается с края выбранной области по направлению поиска. Область как бы предварительно схлопывается в направлении поиска.
    • Поиск не сработает, если искомый текст занимает всю область поиска.
      • Пример. В области R, содержащей текст R.Text="Иван" , поиск R.Find.Text="Иван" не сработает.
    • В таблице, для поиска в последнем параграфе ячейки таблицы при помощи Selection, надо брать область параграфа без последнего символа. Причина хорошо видна, если выполнить код: Cell.Range.Characters.Last.Select
    • Учитывайте при поиске символы (Character ) содержащие не один знак. Такие как символ конца ячейки таблицы (13 + 7), гиперссылки и т.п.
      • Пример. Поиск по шаблону "Вася[!.]" не найдет слово "Вася" стоящее последним в ячейке таблицы или перед гиперссылкой.
    • Если область поиска охватывает часть гиперссылки, то поиск будет произведен в гиперссылке целиком. Желательно выравнивать область поиска с началом/концом символа (Character ). Например, так:
      Range.SetRange Start:=Range.Characters.First.Start, End:=Range.Characters.Last.End
    • При поиске в выбранной области (Selection) учтите, что в таблице невозможно выбрать: стока + ячейка.
      • Пример. Код, приведенный ниже, выберет все от начала строки с ячейкой таблицы до конца документа:
        Range(позиция в ячейке таблицы, позиция конца документа).Select
    • Команда Find.Execute иногда выдает False , в то время как поиск успешен и Find.Found=True . Т.е. надежнее писать так:
      Range.Find.Execute
      If Range.Find.Found = True Then ...
    • В виде макроса, реализовать опцию поиска "Выделить все...", для стиля, шрифта, или другого форматирования, можно с помощью команды SelectSimilarFormatting
      • Пример. Выделение всех вхождений стиля "Заголовок 1":
        Selection.Find.Style = "Заголовок 1"
        Selection.Find.Execute
        Application.Run "SelectSimilarFormatting"
    • Спецсимвол ^d (он же ^19 - начало поля, есть еще ^21 - конец поля) позволяет искать как любые поля, так и поля определенного типа. Более того, можно найти, выделить и обработать строго отфильтрованные, нужные поля.
      • Пример обработки полей типа AUTOTEXT:
        • Включим режим отображения кода полей (Alt+F9)
        • Откроем окно расширенного поиска (Ctrl+F, Ctrl+H)
        • В поле "Найти" водим текст: ^d^wAUTOTEXT^w
        • Активируем флаг "Выделить все элементы..."
        • Выполним поиск. В результате, будут выделены все поля типа AUTOTEXT. Причем, выделяются не искомые фрагменты кода полей, а именно поля целиком!
        • Выделенную группу полей можно вырезать, скопировать, удалить, форматировать и др.
        • Можно переключиться обратно - в режим отображения значений полей (Alt+F9). При этом, поля останутся выделенными.
    • Если выставить Selection.Find.Wrap = wdFindContinue , то при проходе поиска через край (начало/конец документа), этот параметр самосбросится и станет wdFindStop .

ШРИФТ (Font )

  • Свойство Range.Font не включает в себя информацию о пробелах и других пустых символах в области Range , если область содержит видимые символы.
  • При изменении любого параметра шрифта Range.Font , у пробелов и других пустых символов, стоящих последними в области Range , после видимого символа, параметры шрифта не изменятся.

СКРЫТЫЙ ТЕКСТ (Font.Hidden )

  • Когда скрытый текст виден (ShowHiddenText=True ), то он ведет себя как обычный текст.
  • Когда скрытый текст не виден (ShowHiddenText=False ), то:
    • Скрытый текст исключается из свойств:
      Paragraphs
      Range.Characters
      Range.Text
    • Скрытый текст остается в свойствах:
      Range.Start
      Range.End
      Range.Font
      Selection.Type
  • При переключении видимости скрытого текста (ShowHiddenText ), проверяйте и корректируйте области Range . Желательно избегать ситуации, когда текст скрыт, а край области находится внутри скрытого текста.

ТАБЛИЦЫ (Table )

  • Команда Select , для выбора столбцов таблицы, работает по-разному, когда таблица находится на одной странице и когда на нескольких.
  • Если область схлопнута и находится в начале параграфа сразу за таблицей, то у этой области Range.Tables.Count = 1 . Поэтому, нахождение в таблице лучше проверять функцией Range.Information(wdWithInTable) .
  • Если Selection находится сразу за последней ячейкой строки таблицы то:
    Selection.Cells.Count = 1
    Selection.Range.Cells.Count = 0
  • Осторожно использовать команды перехода по параграфам в таблицах с объединенными ячейками. Например: Selection.Move Unit:=wdParagraph, Count:=1 . При поиске возможно зацикливание.
  • Вставка нового столбца в таблицу может быть невозможна из-за ошибки "Превышена максимальная ширина". Поэтому, при создании таблицы макросом, лучше задать столбцам фиксированную ширину, а уже после заполнения можно включить автоподбор ширины и др.

СТИЛИ (Style )

  • Желательно исключить пробелы из имен стилей, созданных пользователем. Например, при наличии пробелов, сбоит функция "Выделить все" стиля. Встроенных стилей это не касается.
  • Имена встроенных стилей привязаны к региональным настройкам и пишутся на языке интерфейса. Например, стиль "Заголовок 1" в русском Word, это "Header 1" в английском. В макросах, для встроенных стилей, надо использовать номера wdBuiltinStyle , для повышения совместимости.
  • Осторожно работайте с неиспользуемыми стилями (Style.InUse = False ). Хотя эти стили и находятся в коллекции документа (Document.Styles ), но к документу пока не относятся, правильнее считать их отдельной группой. Word следит за такими стилями, и даже простое чтение макросом свойств (не всех, но например Style.Description ) неиспользуемого стиля, вызывает автоматическое подключение этого стиля к документу и цепную перенастройку других стилей. В результате чего, документ будет изменен (Document.Saved = False ), связи его стилей (свойства BaseStyle, LinkStyle ) будут перенастроены по какому-то внутреннему алгоритму Word, могут появиться изменения в форматировании документа.
  • Параметр стиля InUse означает, что стиль подключен к документу. Это не значит, что стиль используется прямо сейчас, достаточно было применить стиль ранее. Так же, это может быть стиль, созданный или модифицированный в этом документе.
    • Пример. Если применить в документе стандартный стиль "Подпись", а затем удалить все стилизованные им фрагменты, то параметр InUse стиля "Подпись" останется равным True .
  • Присвоение стиля делайте через имя, не через объект.
    • Ошибка (сбой произойдет, если имя стиля "005", то есть какой-то номер в виде текста):
      Selection.Find.Style = MyStyle
    • Правильно:
      Selection.Find.Style = MyStyle.NameLocal
  • В стиле таблицы программно (макросом) нельзя задать:
    • Вертикальное выравнивание текста ячеек.
    • Значения полей ячеек по умолчанию (для всей таблицы) (TopPadding и др. меняет поля у всех ячеек стиля сразу).
    • Параметр "Как во всей таблице" для полей ячейки.

ВЫБРАННЫЙ ФРАГМЕНТ (Selection )

  • Объект Selection является уникальным, также как и многие его свойства и методы. Например, у объекта Range набор инструментов для работы с областью существенно уступает Selection .
  • Несомненный плюс Selection в том, что возможна работа с несколькими фрагментами, выбранными в разных местах документа. В отличие от Range , где возможна обработка только одного непрерывного фрагмента документа.
  • Старайтесь как можно реже использовать Selection в макросах, особенно в сложных. Только по необходимости. Причина - к изменению Selection , привязано очень много автоматических операций Word. Использование Selection , в лучшем случае, сильно замедлит работу макроса, в худшем - приведет к ошибке, сбою.
  • Не путать одинаковые свойства и методы у Объект.Свойства и Объект.Range.Свойства. Например, свойства Selection и те же свойства Selection.Range могут существенно различаться.
  • При некоторых типах Selection.Type (например, если выбрано полотно) не работает команда ActiveDocument.Styles.Add .
  • Когда Selection.Range в начале параграфа, команда Selection.Collapse wdCollapseStart иногда переводит курсор в конец предыдущего параграфа.
  • Свойства Selection относятся к активной части документа.
    • Пример:
      ActiveDocument.StoryRanges(Index:=wdFootnotesStory).Select
      Selection.Find.Execute " что-то ищем и находим...
      " до следующей команды Selection находится в FootnotesStory
      " ОШИБКА:
      ActiveDocument.Range(Selection.Start, Selection.End).Select
      " выбрали неизвестно что в главной части документа (wdMainTextStory)
      " ПРАВИЛЬНО:
      Selection.SetRange Selection.Start, Selection.End
  • Без использования буфера, выбранный фрагмент (Selection ), можно копировать и перемещать внутри документа с помощью команд CopyText и MoveText соответственно.

ОБЪЕКТЫ

  • Проверка объекта:
    • Объект is Nothing = True , если объект не определен.
    • IsObjectValid(Объект) <> True , если объект был удален.
      • Рекомендую использовать эту проверку при пакетной обработке объектов в цикле For Each .
      • Кроме удаленных, эта проверка отлавливает и поврежденные объекты (встречаются и такие).
  • Проверка типа объекта:
    • If TypeOf Объект Is Тип Then
  • Имя типа объекта:
    • S = VBA.TypeName(Объект)
  • Запись свойства объекта по имени:
    • CallByName Selection.Find, "Text", vbLet, "стул"
    • Аналог: Selection.Find.Text = "стул"
  • Чтение свойства объекта по имени:
    • S = CallByName(Selection.Find, "Text", vbGet)
    • Аналог: S = Selection.Find.Text
  • Вызов метода объекта по имени:
    • CallByName Selection.Find, "Execute", vbMethod, "стул", True
    • Аналог: Selection.Find.Execute "стул", True
  • Удаляя параграф, вы удаляете прикрепленные к нему рисунки, надписи и другие объекты.
  • При работе с рисунками (объекты Shape и InLineShape ) надо серьезно учитывать версию Word. Результат работы одного и того же кода, в разных версиях Word, может существенно отличаться.
  • Объекты типа Shape , привязывается не к параграфу, а к месту в параграфе. Соответственно работает и ShapeRange .
    • Пример. Знак "разрыв страницы" делит параграф на две части (не на два параграфа). Первая часть будет на одной странице, вторая - на другой. И рисунки можно будет вставлять как на одну страницу, так и на другую, с привязкой к одному и тому же параграфу. Аналогично действует знак "разрыв колонки".
  • Параметр Anchor , при создании Shape , зачастую игнорируется. Помогает вырезание и вставка Shape . В этом случае, Anchor всегда совпадает с местом вставки, что позволяет привязать Shape даже к одному знаку.
    • Пример вставки и привязки фигуры "Сердце":
      Dim R as Range, SH as Shape
      Set R = Selection.Range " место привязки
      R.Collapse wdCollapseStart
      Set SH = ActiveDocument.Shapes.AddShape(msoShapeHeart, 0, 0, 100, 100, R) " глючит
      If R.Start <> SH.Anchor.Start Then " проверка и коррекция
      SH.Anchor.Cut
      R.Paste
      Set SH = R.ShapeRange(1)
      End If
  • При позиционировании Shape на странице - при изменении свойств Top и Left , используйте переменные типа Variant . Иначе, позиция Shape может скакать. Например, при использовании типа Single .

ФОРМА, ПАНЕЛЬ, МЕНЮ

  • Параметр TakeFocusOnClick , у элементов немодальной формы (ShowModal=False ), всегда оставляйте True . Иначе, форма будет либо не получать фокус, когда она не активна, либо терять фокус, когда элемент формы вызывает другой диалог.
  • При создании элементов панели инструментов (кнопок, меню и др.), в команде CommandBarControls.Add параметр Temporary игнорируется. Temporary всегда False , как бы.

РАЗНОЕ

  • При проверке кода символа учитывайте, что функция AscW() может выдать отрицательное число, так как диапазон Unicode от -32768 до 65535.
    • Например, надо проверить, что код символа от 0 до 32:
      if AscW(S) <= 32 then " ошибка!
      if AscW(S) >= 0 and AscW(S) <= 32 then " правильно
  • Команды Copy , Cut , Paste и другие, работающие с буфером обмена, дополняйте командой DoEvents . Иначе, может возникнуть ошибка "в буфере отсутствуют данные или они имеют неверный формат". Особенно актуально при использовании буфера в цикле.
  • При открытии документа в режиме "только для чтения", в нем, тем не менее, могут произойти изменения. При этом, свойство Document.Saved станет равно False . Это происходит из-за параметров документа и Word. Например, при активном параметре "автоматически обновлять связи при открытии".
  • Коллекция Application.Documents включает в себя и скрытые документы, которые нельзя сделать активными (ActiveDocument ).
  • Учитывайте, что Range.Start и Range.Characters.First.Start не всегда совпадают. Например, когда Range.Start внутри перекрестной ссылки, гиперссылки и т.п.
  • Даже когда область Range схлопнута Range.Characters.Count=1 . Поэтому, нулевую длину области надо проверять так:
    If Range.Start = Range.End Then ...
  • Не путать Len(Range.Text) c Range.Characters.Count . Один Character может содержать несколько символов, а значит возможна ситуация когда: Len(Range.Text) > Range.Characters.Count
  • Функция InRange вернет False , если проверяемая область схлопнута и стоит в конце области-родителя. Но вернет True , если схлопнутая область в начале. Такая хитрая логика, не прописанная в документации.
  • Команда Application.Run не возвращает параметры типа Variant . Задавайте тип явно.
    • Пример с ошибкой:
      Sub AAA()
      Dim V As Variant " надо писать As Long
      Application.Run MacroName:="BBB", VarG1:=V
      MsgBox V
      End Sub
      Sub BBB(ByRef V)
      V = 123
      End Sub
  • Команда InsertParagraphBefore/After иногда не срабатывает. Помогает ее замена на: InsertBefore Text:=vbCr .
  • Область с последним символом документа ведет себя нестандартно, что может привести к зацикливанию.
    • Пример:
      ActiveDocument.Range.Characters.Last.Select
      Selection.Collapse Direction:=wdCollapseEnd " глюк здесь
  • Оператор With ... End With аналогичен объявлению и освобождению новой переменной. Имя переменной как бы пустое, а для доступа к ее свойствам достаточно напечатать точку.
    • Пример с ошибкой:
      Dim C As Cell, i As Long
      With Selection
      For i = 1 To Selection.Cells.Count " ячеек несколько
      .Cells(i).Range.Text = "X"
      Next i
      End With
    • Исправленный пример:
      Dim C As Cell, i As Long
      With Selection.Cells
      For i = 1 To .Count
      .Item(i).Range.Text = "X"
      Next i
      End With
  • Переход в начало N-ой страницы документа:
    ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, N).Select
    или
    Selection.GoTo(wdGoToPage, wdGoToAbsolute, N)
  • Когда одновременно запущено несколько приложений Word, использующих одну надстройку, невозможно выполнить команду Document.Save для этой надстройки, ее будут блокировать остальные Word-приложения. То есть, если вы храните какие-то данные в теле надстройки, например в переменных (Variables ), сохранить их не получится. Возможно это и хорошо, но если сохранять нужно, используйте ini-файл, реестр или др.

Привет, друзья. Знаете ли вы, что поиск в Ворде можно выполнять очень точно: учитывая регистр, стиль, шрифт, а также учитывая подстановочные знаки, и другое? В этой статье я расскажу вам, как им правильно пользоваться, чтобы результат поиска был безошибочным.

Расширенный поиск

Поиск по странице Ворд исполняется при помощи функции под названием “Найти”. Более подробно о нем можно узнать на странице “ ”.

Если вам доводилось искать какой-либо текст в тексте документа, то, думаю, вы замечали, что результаты могут быть не точными. К примеру, при поиске слова «дети» Ворд вам предложит все варианты, которые производные от основного запроса: «детиНА», «детиШКИ».

А чтобы отыскать определенное конкретное слово, для этого в текстовом редакторе Word существует расширенный поиск. Через него можно отыскать более точный текст — учитывая регистр, по точному совпадению, найти слово не только по содержанию, но и по тому, как оформлены эти слова, а также по прочим условиям. Как им пользоваться, спросите вы?

Откроем вкладку “Главная”, найдем раздел “Редактирование” и жмем “Найти”. Внизу появившегося окна поиска жмем “Больше”. Откроется окно расширенного поиска.

Посмотрите, как много тут всяких вариантов поиска. Сейчас я вам расскажу об основных из них:

  • «Направление»- в каком направлении будет произведен поиск по документу Word.
  • “Вперед”, поиск пройдет вниз от курсора до конца документа.
  • “Назад” – от курсора вверх к началу документа. При этом в ссылках и в колонтитулах поиск осуществляться не будет.
  • Если выбрать “Везде”, то Word поищет слова и в колонтитулах, и в ссылках.

Поиск по словам

Продолжаем изучать параметры расширенного поиска.

“Учитывать регистр” — означает, будет ли Ворд при поиске слов учитывать БОЛЬШИМИ или маленькими буквами набрано слово. К примеру, в поиске набираем слово с Заглавной буквы, тогда и результатом поиска будет, только слово с Заглавной буквы.

“Только слова целиком” — этим пунктом мы говорим Ворду, что нас интересует поиск конкретно этого слова. К примеру, в строке поиска набираем слово «пап», тогда поиск найдет те слова, которые содержат конкретно «пап», а слова, типа папа, папин, папочка будут пропущены.

“Подстановочные знаки” — это значит, что будем использовать специальные знаки для поиска слов. К примеру, набираем в поиске «стен?» и ищем. Ворд понимает, что вместо знака вопроса можно подставить любую букву: стенА, стенЫ, стенУ и т.д. Результатом поиска будут все подобные слова.

Какие бывают подстановочные знаки можете узнать на странице «Подстановочные знаки расширенного поиска в Ворд».

«Произносится как» — в английском языке есть множество слов, звучащие одинаково, а записываются они по-разному. Хоть и в русском языке есть такие слова, но для нашего языка эта функция не работает.

Функция “Все словоформы” ищет все словоформы.

Поиск в документе Word по формату

Кнопка «Формат» откроет список форматов, по которым можно отыскать текст. Кстати, формат можно выбрать не один, а несколько.

Функция “Специальный” также содержит список функций.

Поиск и замена

В Ворд, используя расширенный поиск, можно не только найти текст, но и его заменить на другой.

Для этого откройте вкладку «Заменить». Далее в строке найти указываем то слово, что мы хотим поменять. К примеру слово «одно» заменить на слово «другое». А значит, следующим шагом в поле «Заменить на» мы пишем то, на что необходимо поменять текст. Выставляем правильные Параметры поиска и жмем на одну из кнопок: Заменить либо Заменить все.

Заключение

По моему мнению в этом ничего слишком сложного нет. Напротив, довольно удобно, что в Ворде есть более гибкая настройка поиска, которая позволяет более точно указать параметры поиска. Надеюсь вам понравилось и я вам смог помочь. Еще раз напомню, что у меня есть статья про «Поиск в Ворде», советую посмотреть и ее.



Понравилась статья? Поделитесь ей
Наверх