Как я могу найти выбранное слово во всем документе Microsoft Word и выделить его с помощью VBA? - PullRequest
0 голосов
/ 10 апреля 2020

Я знаю, что это невероятно простой c вопрос, но я не могу понять, как это сделать, поскольку я совсем не знаком с VBA. Я потратил весь свой день на это. Вот что я хочу сделать:

Я хочу создать ярлык для макроса Microsoft Word, который может искать определенный текст c, который я выбрал (а не заданный список слов или ввод текста этот текст в блоке), а затем измените его формат (желательно выделите его жирным шрифтом или измените его цвет). Я попытался изменить несколько макросов, которые я нашел в inte rnet, чтобы сделать это, но пока не получилось.

Не могли бы вы помочь мне с этим?

Спасибо за ваше время и усилия, искренне.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Код VBA для этого может быть довольно простым. Например:

Sub MakeBold()
Application.ScreenUpdating = False
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .Text = Selection.Text
    .Replacement.Text = "^&"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .Execute Replace:=wdReplaceAll
  End With
End With
Application.ScreenUpdating = True
End Sub

Инструкции по установке и использованию макроса P C см. В http://www.gmayor.com/installing_macro.htm

Инструкции по установке и использованию макроса Ma c см .: https://wordmvp.com/Mac/InstallMacro.html

0 голосов
/ 10 апреля 2020

Это будет делать то, что вы хотите. Скопируйте / вставьте в окно редактора VB.

Sub HighlightWords()

Dim Word As Range
Dim WordCollection(2) As String
Dim Words As Variant

'Define list.
'If you add or delete, change value above in Dim statement.
WordCollection(0) = "you"
WordCollection(1) = "or"
WordCollection(2) = "Word document"

'Set highlight color.
Options.DefaultHighlightColorIndex = wdYellow
'Clear existing formatting and settings in Find feature.
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
'Set highlight to replace setting.
Selection.Find.Replacement.Highlight = True
'Cycle through document and find words in collection.
'Highlight words when found.

For Each Word In ActiveDocument.Words
    For Each Words In WordCollection
        With Selection.Find
        .Text = Words
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False

        End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Next
Next

End Sub

До:

enter image description here

После:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...