Cambiamento di genere del pronome (Microsoft Word)
Robert vorrebbe avere una macro che cambi il genere dei pronomi nei documenti e si chiede se, forse, c’è qualcosa suggerito per apportare tali modifiche.
Se stai cercando una macro per cambiare il genere di tutti i pronomi in un documento, è relativamente semplice: tutto ciò di cui hai bisogno è una macro che esegua la ricerca universale e sostituisca le operazioni per i pronomi maschili e li cambi in pronomi femminili, o viceversa .
Se, tuttavia, stai cercando una macro che alterni pronomi – il primo uso è maschile, il secondo è femminile, ecc. – come spesso si fa nella scrittura di saggistica, questa è una storia diversa. È meglio lasciare a un editore esperto il compito di giudicare quali modifiche apportare e fino a che punto estenderle.
Quindi, supponendo che tu voglia seguire il percorso universale, l’approccio migliore è usare una macro che utilizza la ricerca con caratteri jolly usando coppie di pronomi (un pronome maschile con un pronome femminile corrispondente) per specificare le modifiche da apportare. L’esempio seguente utilizza un tale approccio per cambiare lui, lui, il suo e se stesso nelle forme femminili (lei, lei, lei, se stessa) o viceversa.
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
Notare che ci sono tre macro nell’elenco. Dovresti usare la macro MaleToFemale per passare da pronomi maschili a pronomi femminili e la macro FemaleToMale per cambiare la direzione opposta. Le coppie di pronome stessi sono nella macro GenderChange, negli array maschili e femminili.
Nota che ogni pronome è incluso nell’array tre volte usando diverse combinazioni di caratteri maiuscoli e minuscoli. Questo perché la ricerca con caratteri jolly fa distinzione tra maiuscole e minuscole, quindi sono necessarie ricerche diverse per ogni istanza di case.
Tieni presente che la macro attiva anche Rileva modifiche prima di apportare modifiche. In questo modo ogni modifica apportata dalla macro viene annotata nel documento ed è quindi possibile utilizzare il normale processo di risoluzione delle revisioni per valutare ogni modifica apportata. Questo perché la lingua inglese è terribilmente imprecisa e c’è ambiguità nell’uso di alcune parole che generalmente consideriamo pronomi. Ad esempio, le parole “suo” e “lei” possono essere usate sia come pronomi personali possessivi che come aggettivi possessivi. È possibile distinguere l’uso corretto solo quando li si guarda nel contesto, cosa che ovviamente la macro non fa. Conclusione: leggi dopo la modifica per assicurarti che il tuo documento abbia ancora senso.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (12896) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.