Тема: Одновременное выделение цветом разных слов.
Здравствуйте уважаемые форумчане!
Пожалуйста, подскажите, есть ли способ одновременно выделить несколько разных слов в одном тексте?
Например:
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте уважаемые форумчане!
Пожалуйста, подскажите, есть ли способ одновременно выделить несколько разных слов в одном тексте?
Например:
Например: "В лесу родилась елочка, в лесу она росла. Зимой и летом стройная, зеленая была".
Выделить цветом: была елочка и лесу росла стройная.
P.S. В макросах я 0, последний раз использовал в школе.
Заменить придется несколько сотен слов.
Я честно искал в интернете, искал и на этом форуме.
Заранее благодарю за любые ответы, очень надеюсь на Вашу помощь!
Например: "В лесу родилась елочка, в лесу она росла. Зимой и летом стройная, зеленая была".
Выделить цветом: была елочка и лесу росла стройная.P.S. В макросах я 0, последний раз использовал в школе.
Заменить придется несколько сотен слов.
Я честно искал в интернете, искал и на этом форуме.
Заранее благодарю за любые ответы, очень надеюсь на Вашу помощь!
Выделите курсором несколько нужных вам контекстов, удерживая нажатой клавишу Ctrl. Затем укажите цвет.
Спасибо Вам yshindin, но повторюсь: "заменить придется несколько сотен слов".
Вручную уйдет очень много времени и всего не углядишь.
Спасибо Вам yshindin, но повторюсь: "заменить придется несколько сотен слов".
Вручную уйдет очень много времени и всего не углядишь.
Чтобы автоматизировать эту работу, нужно сформулировать яснее принцип, по которому должны выделяться слова. Иначе при любом раскладе это "ручная работа". Если бы, скажем все возможные для выделения в основном тексте слова были представлены в другом документе, то при таких условиях макрос можно было бы написать.
suxariks пишет:Спасибо Вам yshindin, но повторюсь: "заменить придется несколько сотен слов".
Вручную уйдет очень много времени и всего не углядишь.Чтобы автоматизировать эту работу, нужно сформулировать яснее принцип, по которому должны выделяться слова. Иначе при любом раскладе это "ручная работа". Если бы, скажем все возможные для выделения в основном тексте слова были представлены в другом документе, то при таких условиях макрос можно было бы написать.
Есть такой документ! И все возможные для выделения в основном тексте слова уже выбраны и аккуратно вставлены в колонки.
Есть такой документ! И все возможные для выделения в основном тексте слова уже выбраны и аккуратно вставлены в колонки.
Я набросал для вас макрос. Назовите документ с ключевыми словами как Dic.docx. В нем выделите все места, содержащие ключевые слова (выделять можно абзацами, ячейками таблиц и т.п.) и отметьте такие места закладками dic01, dic02 и т.д. Откройте оба документа: основной и ключевой (активным должен быть основной документ). Выполните макрос Mk_dic (это стартовый, он вызывает исполняющий макрос-подпрограмму MarkKeywords.Макрос собирает словарь из слов закладок ключевого документа, а затем размечает по словарю слова основного документа (если слово
Есть такой документ! И все возможные для выделения в основном тексте слова уже выбраны и аккуратно вставлены в колонки.
Я набросал для вас макрос. Назовите документ с ключевыми словами как Dic.docx. В нем выделите все места, содержащие ключевые слова (выделять можно абзацами, ячейками таблиц и т.п.) и отметьте такие места закладками dic01, dic02 и т.д. Откройте оба документа: основной и ключевой (активным должен быть основной документ). Выполните макрос Mk_dic (это стартовый, он вызывает исполняющий макрос-подпрограмму MarkKeywords.
Макрос собирает словарь из слов закладок ключевого документа, а затем размечает по словарю слова основного документа (если слово "похоже" на слово из словаря).
Тексты макросов ниже.
Sub Mk_dic()
Call MarkKeywords("Dic.doc*", wdColorRed)
End Sub
Sub MarkKeywords(Keyw_Doc As String, keyw_highlight As Variant)
'Marks keywords in the current (main) document
Dim kw() As String
Dim Main_Document As String
Dim Keyw_Document As String
Dim errflag As Long
Dim kwdoc_found As Boolean
Dim iwrd As Long
Dim nwrd As Long
Dim word_ctr As Long
Dim wrd As Object
Dim cword As String
'1. Check for the keywords.doc file opened
Main_Document = ActiveDocument.name
kwdoc_found = False
For Each doc In Documents
If UCase$(doc.name) Like UCase$(Keyw_Doc) Then
kwdoc_found = True
Keyw_Doc = doc.name
End If
Next doc
If kwdoc_found <> True Then
MsgBox Keyw_Doc & " file is not loaded"
GoTo e_mark_keywords
End If
'2. Prepare the keywords array
Documents(Keyw_Doc).Activate
iwrd = 0
For Each bmk In Documents(Keyw_Doc).Bookmarks
If bmk.name Like "dic*" Then
For Each wrd In bmk.Range.Words
If Not ((CStr(wrd) = Chr$(13)) Or (Trim(CStr(wrd)) = "")) Then
iwrd = iwrd + 1
ReDim Preserve kw(1 To iwrd)
kw(iwrd) = LCase(Trim(CStr(wrd)))
End If
Next
End If
Next
nwrd = iwrd
'3. Scan the main file and shade the matching keywords.
Documents(Main_Document).Activate
Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst
For Each wrd In Documents(Main_Document).Range.Words
cword = LCase(CStr(Trim(wrd)))
For iwrd = 1 To nwrd
If cword Like "*" & kw(iwrd) & "*" Then
wrd.Font.Color = keyw_highlight
End If
Next iwrd
Next
e_mark_keywords:
Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst
End Sub
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться