Изменение пола местоимения (Microsoft Word)
Роберт хотел бы иметь макрос, который изменяет род местоимений в документах, и задается вопросом, возможно, есть ли что-нибудь для внесения таких изменений.
Если вы ищете макрос для изменения рода всех местоимений в документе, это относительно просто — все, что вам нужно, это тот, который будет выполнять универсальный поиск и заменять мужские местоимения и заменять их на женские местоимения, или наоборот. .
Однако, если вы ищете макрос, который будет чередовать местоимения — первое употребление — мужское, второе — женское и т. Д. — как это часто делается в документальной литературе, это совсем другая история. Лучше оставить опытному редактору самому решать, какие изменения внести и насколько далеко продлить эти изменения.
Итак, предполагая, что вы хотите пойти по универсальному пути, лучший подход — использовать макрос, который использует поиск по шаблону с использованием пар местоимений (одно мужское местоимение с соответствующим женским местоимением), чтобы указать изменения, которые необходимо внести. В следующем примере используется такой подход, чтобы изменить его, его, его и себя на женские формы (она, ее, ее, себя) или наоборот.
Sub MaleToFemale() GenderChange (True) End Sub
Sub FemaleToMale() GenderChange (False) End Sub
Sub GenderChange(isMale As Boolean) Dim aRange As Range Dim fTest As Boolean Dim j As Long Dim k As Long Dim male Dim female male = Array("he", "He", "HE", "him", "Him", "HIM", "his", _ "His", "HIS", "himself", "Himself", "HIMSELF") female = Array("she", "She", "SHE", "her", "Her", "HER", "hers", _ "Hers", "HERS", "herself", "Herself", "HERSELF") ActiveDocument.TrackRevisions = True Set aRange = ActiveDocument.Range With aRange.Find .ClearFormatting .Replacement.ClearFormatting .Replacement.Highlight = False .Forward = True .Format = False .Wrap = wdFindStop .Format = False .Highlight = False .MatchCase = False .MatchWholeWord = False .MatchSoundsLike = False .MatchAllWordForms = False .MatchPrefix = False .MatchWildcards = True j = UBound(male) For k = 0 To j If isMale Then .Text = "<" & male(k) & ">" .Replacement.Text = female(k) Else .Text = "<" & female(k) & ">" .Replacement.Text = male(k) End If fTest = aRange.Find.Execute(Replace:=wdReplaceAll) Next k End With ActiveDocument.TrackRevisions = False End Sub
Обратите внимание, что в листинге есть три макроса. Вы должны использовать макрос MaleToFemale, чтобы изменить местоимения мужского пола на женские местоимения, и макрос FemaleToMale, чтобы изменить другое направление. Сами пары местоимений находятся в макросе GenderChange, в мужском и женском массивах.
Обратите внимание, что каждое местоимение включается в массив трижды с использованием различных комбинаций символов верхнего и нижнего регистра. Это связано с тем, что поиск с использованием подстановочных знаков чувствителен к регистру, поэтому для каждого экземпляра случая необходим отдельный поиск.
Обратите внимание, что макрос также включает отслеживание изменений перед внесением каких-либо изменений. Таким образом, каждое изменение, сделанное макросом, отмечается в документе, и вы можете затем использовать обычный процесс разрешения отслеживания изменений для оценки каждого внесенного изменения. Это сделано потому, что английский язык ужасно неточен и есть двусмысленность в использовании некоторых слов, которые мы обычно считаем местоимениями. Например, слова «его» и «ее» могут использоваться либо как притяжательные личные местоимения, либо как притяжательные прилагательные. Различить правильное использование можно только при взгляде на них в контексте, чего макрос явно не делает. Нижняя строка — прочтите после изменения, чтобы вы могли убедиться, что ваш документ по-прежнему имеет смысл.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (12896) относится к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.