1

Тема: Как избавиться от формата "по умолчанию" в поиске (Ctrl+F) Ворда?

В Ворде макросом ищу оформление текста шрифтом Tahoma.
Если в макросе подписать поиск шрифта Tahoma, то он не находится в документе. Хотя там присутствует. Если потом задать ручной поиск, то оказывается, что под строкой поиска указан не просто шрифт Tahoma, а еще в скобках указано "по умолчанию" (т.е. так: ("по умолчанию, Tahoma"). Т.е. если по умолчанию, то шрифт не найдется. А если просто указать шрифт Tahoma, то найдется. Можно ли как-то в тексте макроса прописать, чтобы искал не по умолчанию?

фрагмент кода:

Selection.HomeKey Unit:=wdStory ' spraff
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ""
        .Font.Name = "Tahoma"
        '.Font.Size = 14
        .Replacement.Text = "": .Forward = True: .Wrap = wdFindStop: .Format = True: .MatchCase = False
    End With
    Selection.Find.Execute

не находится, т.к. оказывается, что это поиск форматирования "по умолчанию". Как бы без этого "умолчания" искать?

2

Re: Как избавиться от формата "по умолчанию" в поиске (Ctrl+F) Ворда?

Вот нормальный макрос:
Sub FindFont()
'
'
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .Font.Name = "Tahoma"
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

А Ваш зациклен, после первого поиска останавливается и и опять ищет первую строчку с начала документа

3

Re: Как избавиться от формата "по умолчанию" в поиске (Ctrl+F) Ворда?

aap77 пишет:

Вот нормальный макрос:

...
        .Wrap = wdFindContinue
        .Format = True
        .Font.Name = "Tahoma"
    End With
    Selection.Find.Execute
...

А Ваш зациклен, после первого поиска останавливается и опять ищет первую строчку с начала документа

1. Нашел отличие только в wdFindContinue. К сожалению это не решает проблемы (ессно). Я хотел избавиться от поиска по умолчанию, который оказывается "заряженным" в строке поиска после выполнения макрокоманды     Selection.Find.Execute с заданными параметрами. А если в окне поиска нажать "очистить формат" (как бы аналог - макрокоманда "Selection.Find.ClearFormatting", которая выполненная из макроса не очищает, к сожалению, окно поиска полностью), то потом указанный шрифт находится, потому что уже нет приписки "по умолчанию". Как бы избавиться от этого "по умолчанию"?

2. "А Ваш зациклен". У меня дальше идет конструкция:

While Selection.Find.Found
...
Wend

поэтому зацикленности я не боюсь smile

4

Re: Как избавиться от формата "по умолчанию" в поиске (Ctrl+F) Ворда?

Эти строки нужно писать перед выполнением цикла
Вы можете их подстроить под себя

        Application.Selection.Find.ClearFormatting()
        Application.Selection.Find.Font.Name = "Tahoma"
        Application.Selection.Find.Replacement.ClearFormatting()

Первая - очищает формат поиска
Вторая - настраивает формат искомого текста
Третья - настраивает формат найденного текста

5

Re: Как избавиться от формата "по умолчанию" в поиске (Ctrl+F) Ворда?

Настаев пишет:

     Application.Selection.Find.ClearFormatting()
        Application.Selection.Find.Font.Name = "Tahoma"
        Application.Selection.Find.Replacement.ClearFormatting()

Я поражен. Оно работает!

Большущее спасибо.