Condividi:        

[Word] Evidenziare lista di parole

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Word] Evidenziare lista di parole

Postdi cris3 » 01/06/18 19:14

Salve, io sto cercando una macro, che da una lista di parole varie, me le preda e faccia la ricerca su qualunque documento .doc che uso, e evidenzia tutte le parole che trova della lista, ho provato usando anche caratteri jolly e senza punteggiatura e mi trova le parole, ma non trova parola diverse insieme es:
ho le parole: casa, macchina, ufficio
vorrei che nel doc venissero evidenziate tutte contemporaneamente, cosi che poi posso aggiungere manulmente le parentesi.

Ho visto le macro presenti in quest'altra discussione: viewtopic.php?f=26&t=106746&p=644276#p644276
Ma non sono riuscito ad adattarle almio caso

Grazie per aiuto
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Sponsor
 

Re: [Word] Evidenziare lista di parole

Postdi Anthony47 » 02/06/18 17:41

Quindi il tuo obiettivo e' "evidenziare" un tot di parole...
Prova con questa macro:
Codice: Seleziona tutto
Sub WordSearch()
Dim wList, cWord
'
'L'elenco delle parole:
wList = Array("guido", "vecchio ponte", "tema", "giugno")           '<<<
'
Options.DefaultHighlightColorIndex = 7  '<<< 7=Gial, 6=Rosso, 4=Verde, 3=celest
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
'Cerca e colora
    For Each cWord In wList
        With Selection.Find
            .Text = cWord
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False      'True ??
            .MatchWholeWord = True  'False ??
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next
End Sub

Le istruzioni marcate <<< vanno personalizzate come da commento; guarda anche le righe marcate ??

Dovrebbe evidenziare in tutto il documento le stringhe elencate in wList.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 02/06/18 19:50

Grazie mille funziona benissimo, sei un genio :-)
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 02/06/18 21:11

ciao Scusa ancora, ma siccome gli articoli hanno tante parole uguali c'è un modo che venga evidenziata solo la prima parola, per ogni parola della lista? ad esempio pippo ce ne sono 5 parole nel testo, mentre roma ce ne sono 3, è posibile che venga evidenziata solo la prima parola pippo e la prima parola roma che trova nel testo? grazie del aiuto :-) ( come mai non ricevo le notifiche di questo post nella mia mail?, ce un modo per attivarle? grazie)
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 02/06/18 22:57

scusa ancora ho provato personalizzare la mia lista, ma non me l'acetta, alcune parole non le vuole, neppure alcune frasi, mi chiedo che limiti ci sono alla lista, ce un tot di parole possibili da mettere?, Grazie
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi Anthony47 » 02/06/18 23:33

Questa macro e' modificata per modificare solo la prima occorrenza:
Codice: Seleziona tutto
Sub WordSearch()
Dim wList, cWord
'
'L'elenco delle parole:
wList = Array("guidi", "ponte", "giugno", "tema")           '<<<
'
Options.DefaultHighlightColorIndex = 7  '7=Gial, 6=Rosso, 4=Verde, 3=cele
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
'Cerca e colora
    For Each cWord In wList
    Selection.HomeKey Unit:=wdStory     '+++
        With Selection.Find
            .Text = cWord
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False      'True??
            .MatchWholeWord = True  'False ??
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceOne ' wdReplaceAll
    Next
Selection.HomeKey Unit:=wdStory     '+++
End Sub

i limiti dell'istruzione Array non li ricordo, se mi dici quali limiti riscontri posso verificare in modo piu' semplice.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 02/06/18 23:41

ho fatto delle prove, allora se copio la mia lista usando virgolette e virgola come riportato sopra mi da tutto errore, se invece la scrivo a mano direttamente nel modulo me l'acetta, non capisco la cosa. :-(
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi Anthony47 » 03/06/18 00:01

Sbagli le "virgolette"?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 00:04

questa e la macro conle parole, le virgolette le ho controllate, ma se la scrivo a mano vanno se le copio no :
Codice: Seleziona tutto
Sub WordSearch()
Dim wList, cWord
'
'L'elenco delle parole:
wList = Array(“Minghui Weekly”, “Settimanale Minghui”, “appello”, “fare appello”, “appellarsi”, “appellarci”, “appell[oai]”, “amulet[Io]”, “Xinxing”, “Zhuan Falun”, “alimentazione forzata”, “gabbia nell’acqua”, “acqua”, “trasportare una spada sulla schiena“, “spada”, “Pao Luo“, “Pao”, “pao”, “luo”, “cella d'isolamento”, “mani e piedi uniti in catene”, “catene”, “volare come l'aereo“, “bastoni elettrici”, “bastone elettrico”, “bastoni”, “sedersi su un piccolo”, “sgabello”, “piccolo sgabello”, “piccoli sgabelli”, “appendere ad una corda“, “corda”, “infilare gli aghi”, “aghi”, “Retribuzione”, “L'inganno”, “la propaganda”, “la calunnia”, “propaganda”, “Camicia di forza”, “procura”, ”procuratore”, “Procura Suprema”, “Procura Suprema del Popolo”, “il dado di metallo che colpisce la testa”, “dado”, “panca della tigre”, “tigre”, “sedia di ferro”, “ferro”, “stare stesi contro un grande pannello”, “pannello”, “appeso all’in su”, “appeso”, “arrostire un agnello intero”, “agnnello”, “letto della morte”, “letto di stiramento”, “letto”, “seduto su un’asse”, “asse”, “piccola cella”, “cangues personali”, “cangues”, “chiarire la verità”, “chiarire i fatti”, “chiarito la verità”, “chiarimento della verità”, “chiarire loro la verità”, “chiariva i fatti”, “chiarisce i fatti”, “verità”, “le tre cose”, “Fa”, “Hong Yin”, “Ufficio 610”, “ufficio 610”, “Yuan”, “Lunyu”, “le tre dichiarazioni”, “tre dimissioni”, “Dichiarazione di Garanzia”, “dichiarazion[ie] di”, “Garanzia”, “dichiarazion[ei] di rinuncia”, “carta rossa”, “collaborator[ei]”, “riforma[rt]”, “trasforma[rtz]”, “illegalmente”, “illegale”, “date politicamente sensibili”, “25 aprile”, “autoimmolazione”, “Tiananmen”, “commentari”, ”Shan”)           '<<<
'
Options.DefaultHighlightColorIndex = 7  '7=Gial, 6=Rosso, 4=Verde, 3=cele
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Highlight = True
'Cerca e colora
    For Each cWord In wList
    Selection.HomeKey Unit:=wdStory     '+++
        With Selection.Find
            .Text = cWord
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False      'True??
            .MatchWholeWord = True      'False ??
            .MatchWildcards = True
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceOne ' wdReplaceAll
    Next
Selection.HomeKey Unit:=wdStory     '+++
End Sub
grazie ancora
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi Anthony47 » 03/06/18 00:08

le virgolette le ho controllate

Infatti quelle virgolette sono TUTTE SBAGLIATE

Usa Trova e Sostituisci per correggerle
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 01:27

ciao ho fatto tutto come hai detto , ma arriva fino ad agnello, poi qualunque cose copio e incollo da errore, se invece lo scrivo a mano no, non capisco perche, domani verdo ancora,uso word 2010 grazie per la disponibilita buonotte :-)
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 01:30

Codice: Seleziona tutto
wList = Array(“Minghui Weekly”, “Settimanale Minghui”, “appello”, “fare appello”, “appellarsi”, “appellarci”, “appell[oai]”, “amulet[Io]”, “Xinxing”, “Zhuan Falun”, “alimentazione forzata”, “gabbia nell’acqua”, “acqua”, “trasportare una spada sulla schiena”, “spada”, “Pao Luo”, “Pao”, “pao”, “luo”, “cella d'isolamento”, “mani e piedi uniti in catene”, “catene”, “volare come l'aereo”, “bastoni elettrici”, “bastone elettrico”, “bastoni”, “sedersi su un piccolo”, “sgabello”, “piccolo sgabello”, “piccoli sgabelli”, “appendere ad una corda”, “corda”, “infilare gli aghi”, “aghi”, “Retribuzione”, “L'inganno”, “la propaganda”, “la calunnia”, “propaganda”, “Camicia di forza”, “procura”, “procuratore”, “Procura Suprema”, “Procura Suprema del Popolo”, “il dado di metallo che colpisce la testa”, “dado”, “panca della tigre”, “tigre”, “sedia di ferro”, “ferro”, “stare stesi contro un grande pannello”, “pannello”, “appeso all’in su”, “appeso”, “arrostire un agnello intero”, “agnnello”, “letto della morte”, “letto di stiramento”, “letto”, “seduto su un’asse”, “asse”, “piccola cella”, “cangues personali”, “cangues”, “chiarire la verità”, “chiarire i fatti”, “chiarito la verità”, “chiarimento della verità”, “chiarire loro la verità”, “chiariva i fatti”, “chiarisce i fatti”, “verità”, “le tre cose”, “Fa”, “Hong Yin”, “Ufficio 610”, “ufficio 610”, “Yuan”, “Lunyu”, “le tre dichiarazioni”, “tre dimissioni”, “Dichiarazione di Garanzia”, “dichiarazion[ie] di”, “Garanzia”, “dichiarazion[ei] di rinuncia”, “carta rossa”, “collaborator[ei]”, “riforma[rt]”, “trasforma[rtz]”, “illegalmente”, “illegale”, “date politicamente sensibili”, “25 aprile”, “autoimmolazione”, “Tiananmen”, “commentari”, “Shan”)           
le nuove
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 10:04

ciao alla fine ci son riuscito, ho fatto una doppia macro su una lista arriva fino ad agnello, e sul altra macro il restante
o collegato due pulsanti normal cosi da poterla usare su ogni documento che apro, unica cosa e che se cerca le parole intere , non trova i caratteri jolly, e iniziale è maiuscola non sempre la trova se nella lista è minuscola, ma forse devo mettere i true nelle maiuscole, nei jolly e parole intere ce gia. cmq ora è quasi perfetto faro dei ultimi aggiustamenti, riguardo le virgolette , era abilitato in word la voce tarduci da inglesi percio venivano strane e non dritte. Scusa per i post in piu ma non riesco ad eliminarli grazie mille ancora per l'aiuto buonn pomeriggio
:-)
Ultima modifica di cris3 su 03/06/18 10:09, modificato 1 volte in totale.
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi Anthony47 » 03/06/18 13:04

Lieto che hai trovato una via di fuga...

Ogni riga d istruzioni non puo' contenere piu' di 1024 caratteri; puoi pero' "spezzare su piu' righe le istruzioni usando la combinazione di caratteri " _" + "A capo", da inserire tra una stringa e l'altra; esempio.
Codice: Seleziona tutto
wList = array("Prima parola", "seconda parola" _
"terza parola")

Cosi' fai in un unico giro

Con .MatchCase = False 'True?? dici di non fare differenza tra minuscole e maiuscole: purtroppo i caratteri accentati non fanno parte dell'alfabeto base, per cui questa differenza si notera'; ti tocca mettere ambedue le parole in lista

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 19:57

grazie mille , quante cose che sto imparando :-), cmq devo per forza fare uan macro doppia a parte per i caratteri jolly, insieme alle parole intere non funzionano, percio nella prima macro mettero parole intere, e nella seconda la parole yolly.
Grazie ancora
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07

Re: [Word] Evidenziare lista di parole

Postdi cris3 » 03/06/18 21:56

Ciao ho voluto provare a fare spezza righe, amnon funziona,nenche copiando esatta stringa qui riportat mi da errore, credo che nonresta che afre varie macro :-) grazie buona serata
cris3
Utente Junior
 
Post: 14
Iscritto il: 01/06/18 19:07


Torna a Applicazioni Office Windows


Topic correlati a "[Word] Evidenziare lista di parole":


Chi c’è in linea

Visitano il forum: Nessuno e 64 ospiti

cron