Как я могу скрыть текст, который находится между специальными символами в Microsoft Word? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь создать макрос, но я не знаю, с чего начать, я хотел бы скрыть текст между специальными символами, например:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ (including "space" char)

Например, если я получил документ, напримерthis:

::00-58-96::Hello there
::00-58-97::This is a test
::00-58-98::Nothing else
::00-58-99::Good bye !

Я хотел бы получить это после выполнения макроса:

Hello there
This is a test
Nothing else
Good bye !

Текст между

:: ::

был исключен (включая :::)

Другой пример:

>>>some%text_here>>>This is another example
>>>some%text"here>>>Thank you for reading
>>>some%text@here>>>I hope you will have
>>>some&text²here>>>A great day

И вывод будет:

This is another example
Thank you for reading
I hope you will have
A great day

Сначала я думал об использовании функции «Найти и заменить текст», но мне кажется, что это слишком сложно для этого.

Любая подсказка будет очень полезна.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Вам не нужен VBA для этого - все, что вам нужно, это один подстановочный знак Найти / Заменить, где:

Find = ([! "# $% & '() * +, -. / :; <=> \? @ [\] ^ 94_` {|} ~] {2,}) * \ 1

Затем, в зависимости от того, хотите ли вы удалить или просто скрыть найденный контент, используйте:

Заменить = ничего

или

Заменить = ^ &

со свойством шрифта Hidden соответственно.

Конечно, вы могли бы записать это как макрос.

0 голосов
/ 18 июня 2019

Это будет делать:

Примечание: удалит текст, который не требуется.Не скрывайте это.

Sub tst()

    ActiveDocument.Range.Select ' You can remove this line and run macro after selecting the text in which you want the replacement. This line will select the entire document.

With Selection.Find
     .MatchWildcards = True
     .Text = "::*::"
     .Replacement.Text = ""
     .Execute Replace:=wdReplaceAll, Forward:=True, _
     Wrap:=wdFindContinue
End With


End Sub

Pro: Cntrl + Z будет работать, чтобы отменить это, если он не работает как задумано.

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