Il mio codice deve abilitare il controllo ortografico in MS Word 2010 in modo che l'utente possa vedere le sottolineature rosse sotto errori ortografici.Automazione MS Word: impossibile abilitare le sottolineature rosse per il controllo ortografico
Nella versione corrente cerco di fare questo per abilitare il controllo ortografico:
wordApplication.Options.CheckSpellingAsYouType = true;
wordApplication.Options.SuggestSpellingCorrections = true;
wordApplication.ActiveDocument.ShowSpellingErrors = true;
wordApplication.ActiveDocument.CheckSpelling();
apro Word e digitare "stringa texxt Test". Dopo questo eseguo il mio codice ma non succede nulla:
Non vedo alcuna sottolineatura in "texxt". Se vado alle opzioni vedo che "il controllo ortografico durante la digitazione" opzione è stata abilitata:
Ora se controllo quest'affare:
wordApplication.ActiveDocument.SpellingErrors[0].Text
Conterrà "texxt", che significa che l'ortografia era effettivamente controllato.
Anche se ho semplicemente riavviare MS Word e digitare lo stesso testo - sottolineature rosse diventano visibili:
Ho anche provato a chiamare Application.ScreenRefresh e impostare le proprietà ScreenUpdating ma questo non hanno dato alcun effetto.
Nota: Eseguo questo codice/macro all'inizio, quando non c'è testo in un documento. Se c'è del testo - funziona.
Nota 2: passaggi precisi per riprodurre:
Avviare MS Word. Vai alle opzioni e disabilita "controlla l'ortografia mentre scrivi". Riavvia Word.
Avviare Word ed eseguire macro seguente:
Options.CheckSpellingAsYouType = true Options.SuggestSpellingCorrections = true ActiveDocument.ShowSpellingErrors = true
Digitare il seguente testo: "stringa di prova texxt". Premere Invio.
Esegui macro seguente
MsgBox ActiveDocument.SpellingErrors (1) .Text
Si vedrà "texxt" in MessageBox ma non sottolineature rosse
È questo VBA? VBA non utilizza il punto e virgola alla fine delle righe e l'ultima riga non includerà le parentesi. Quando apporto queste modifiche ed eseguo quelle linee di codice, texxt è sottolineato e compare una finestra di dialogo Spelling che mi chiede di cambiarlo. Quando esegui il tuo codice non ricevi errori? – Christina
Questo è C#. Ma ho gli stessi problemi con VBA. Funziona solo se il documento contiene del testo ma se è vuoto e questa macro viene eseguita all'inizio quando comincio a digitare soemthing - non vedo nessuna sottolineatura rossa. – Oleg
Non voglio postare questa risposta come risposta perché non riesco a riprodurre realmente quello che stai ricevendo. Tuttavia, ho trovato che dopo aver eseguito la tua macro Word sarebbe comunque correggere errori semplici. Ho aggiunto la riga Application.AutoCorrect.ReplaceTextFromSpellingChecker = False che ha causato la visualizzazione delle linee rosse. – Christina