رابرت مایل است یک کلان داشته باشد که جنسیت ضمایر را در اسناد تغییر دهد و از خود میپرسد که آیا پیشنهادی برای انجام چنین تغییراتی وجود دارد یا خیر.
اگر به دنبال یک ماکرو برای تغییر جنسیت همه ضمایر در یک سند هستید، این کار نسبتاً ساده است - تنها چیزی که نیاز دارید این است که جستجوی جهانی انجام دهد و عملیات را برای ضمایر مذکر جایگزین کند و آنها را به ضمایر مؤنث تغییر دهد یا برعکس. .
با این حال، اگر به دنبال یک کلان هستید که ضمایر را جایگزین کند - استفاده اول مذکر، دوم مونث و غیره - مانند آنچه اغلب در نوشتن غیرداستانی انجام می شود، داستان متفاوت است. بهتر است این کار را به یک ویرایشگر ماهر بسپارید تا تصمیم بگیرد که چه تغییراتی باید اعمال شود و تا چه اندازه باید آن تغییرات را گسترش داد.
بنابراین، با فرض اینکه میخواهید مسیر جهانی را طی کنید، بهترین رویکرد استفاده از یک ماکرو است که از جستجوی حروف عام با استفاده از جفت ضمایر (یک ضمیر مذکر با یک ضمیر زن متناظر) برای مشخص کردن تغییراتی که باید ایجاد شود، استفاده میکند. مثال زیر از چنین رویکردی استفاده میکند تا او، او، خودش و خودش را به شکلهای زنانه (او، او، خودش، خودش) تغییر دهد یا برعکس.
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، در آرایههای مذکر و مؤنث قرار دارند. توجه داشته باشید که هر ضمیر سه بار با استفاده از ترکیب های مختلف از حروف بزرگ و کوچک در آرایه گنجانده شده است. این به این دلیل است که جستجوی wildcard به حروف کوچک و بزرگ حساس است، بنابراین جستجوهای مختلف برای هر مورد ضروری است.
توجه داشته باشید که ماکرو قبل از ایجاد تغییر، Track Changes را نیز روشن می کند. به این ترتیب هر تغییری که توسط ماکرو ایجاد میشود در سند یادداشت میشود و سپس میتوانید از روند عادی پیگیری تغییرات برای ارزیابی هر تغییر استفاده کنید. این کار به این دلیل انجام می شود که زبان انگلیسی به طرز وحشتناکی نادقیق است و در استفاده از برخی کلمات که ما عموماً ضمایر آنها را در نظر می گیریم ابهام وجود دارد. به عنوان مثال، کلمات "او" و "او" را می توان به عنوان ضمایر شخصی یا به عنوان صفت ملکی استفاده کرد. تنها زمانی که به آنها در زمینه نگاه می کنیم، می توان کاربرد مناسب را تشخیص داد، کاری که ماکرو به وضوح انجام نمی دهد.