Thay đổi giới tính đại từ (Microsoft Word)
Robert muốn có một macro thay đổi giới tính của đại từ trong các tài liệu và tự hỏi nếu, có lẽ, có điều gì được đề xuất để thực hiện những thay đổi như vậy.
Nếu bạn đang tìm kiếm macro để thay đổi giới tính của tất cả các đại từ trong một tài liệu, điều đó tương đối đơn giản — tất cả những gì bạn cần là một macro sẽ thực hiện các thao tác tìm kiếm và thay thế phổ quát cho các đại từ giống đực và thay đổi chúng thành đại từ giống cái hoặc ngược lại .
Tuy nhiên, nếu bạn đang tìm kiếm một macro sẽ thay thế các đại từ — cách sử dụng đầu tiên là nam, thứ hai là nữ, v.v. — chẳng hạn như thường được thực hiện trong văn bản phi hư cấu, đó là một câu chuyện khác. Điều đó tốt nhất là để cho một biên tập viên có kỹ năng đưa ra phán quyết về những thay đổi nào cần thực hiện và bao xa để mở rộng những thay đổi đó.
Vì vậy, giả sử bạn muốn đi theo con đường phổ quát, cách tiếp cận tốt nhất là sử dụng macro sử dụng tìm kiếm theo ký tự đại diện bằng cách sử dụng các cặp đại từ (một đại từ nam với một đại từ nữ tương ứng) để chỉ định các thay đổi cần thực hiện. Ví dụ sau sử dụng cách tiếp cận như vậy để thay đổi anh ta, anh ta, anh ta và chính mình sang dạng nữ (cô ấy, cô ấy, cô ấy, chính mình) hoặc ngược lại.
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
Lưu ý rằng có ba macro trong danh sách. Bạn nên sử dụng macro MaleToFemale để thay đổi từ đại từ nam thành đại từ nữ và macro FemaleToMale để thay đổi hướng khác. Bản thân các cặp đại từ nằm trong macro GenderChange, trong mảng đực và cái.
Lưu ý rằng mỗi đại từ được đưa vào mảng ba lần bằng cách sử dụng các kết hợp khác nhau của ký tự viết hoa và viết thường. Điều này là do tìm kiếm theo ký tự đại diện phân biệt chữ hoa chữ thường, vì vậy các tìm kiếm khác nhau cho từng trường hợp là cần thiết.
Lưu ý rằng macro cũng bật Theo dõi Thay đổi trước khi thực hiện bất kỳ thay đổi nào. Bằng cách đó, mọi thay đổi do macro thực hiện đều được ghi chú trong tài liệu và sau đó bạn có thể sử dụng quy trình giải quyết Theo dõi Thay đổi thông thường để đánh giá từng thay đổi được thực hiện. Điều này được thực hiện bởi vì ngôn ngữ tiếng Anh rất không chính xác và có sự mơ hồ trong cách sử dụng một số từ mà chúng ta thường coi là đại từ. Ví dụ, các từ “của anh ấy” và “của cô ấy” có thể được sử dụng làm đại từ nhân xưng sở hữu hoặc làm tính từ sở hữu. Chỉ có thể phân biệt cách sử dụng thích hợp khi nhìn chúng trong ngữ cảnh, đây là điều mà macro rõ ràng không làm được. Điểm mấu chốt — hãy đọc sau khi thay đổi để bạn có thể đảm bảo rằng tài liệu của mình vẫn có ý nghĩa.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.
(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (12896) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365.