![]() |
|
![]() |
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]()
Hello,
Any clues of how to do this? Something like this would be perfect... winword.exe /??? document.docx Or any other option that does a full document grammar and spell check and the correction without asking word-by-word? Thank you! Last edited by Charles Kenyon; 03-07-2017 at 11:30 AM. Reason: added - vba tag at end of title |
#2
|
|||
|
|||
![]()
You are giving WAY too much credit to the ability of a computer program to make such decisions.
There is no way in Word to do this as a command line option. You could have Word automatically use suggestions from the spelling checker as AutoCorrect. I would advise against doing this. You are likely to regret it if you do. |
#3
|
|||
|
|||
![]()
Thank you, but that is a "risk" i must live with
![]() Even without being from the command line, can it be done? A "yes to all". It is not as you type, the document is already written... |
#4
|
|||
|
|||
![]()
For spelling, I believe that it could be done through a macro. And, I suppose the macro could be run through the command-line interface, now that I think of it. For grammar, there is no way, because for most grammar points, there are not suggestions.
I do not have the skill to write such a macro but someone else on the forum may. The "risk" is very real. It is highly likely that Word will make a document worse rather than better without a human brain making decisions. Search the Internet for "Stupid AutoCorrect" for some idea of what can happen. |
#5
|
|||
|
|||
![]()
To give more context, it is a document library with half a million documents that have more errors than any machine can do
![]() Any pointers to where to look about the creation of that macro? Thank you very much! |
#6
|
|||
|
|||
![]()
I have moved this thread to the Word vba forum. I removed the grammar correction from the title because I don't think it is possible. Choosing the first spelling suggestion may be.
Again, I think you are asking for trouble. |
#7
|
||||
|
||||
![]()
Yes, it's possible to write such a macro, but the results would be unreliable at best. First, there's the question of whether the word is actually misspelt - it might be a place name, a person's name, or a technical word not found in Word's spell-check dictionary. Then, even if it is misspelt, the there's the question of whether spell-check could identify which of a number of possibilities (if any) the correct spelling might be; simply picking the first possibility might be worse than leaving it alone... And what if the misspelling was in the source (perhaps deliberately)!??
That said, the following macro automatically corrects spelling errors in a document, using the first-suggested word from the spelling dictionary, unless the word is found in the macro’s exclusions list. Words in the exclusion list get bright green highlighting and other words, for which no correction can be found, get pink highlighting. Code:
Sub AutoSpellCorrect() Dim Rng As Range, oSuggestions As Variant, StrExcl As String StrExcl = ",word1,word2,word3," For Each Rng In ActiveDocument.Range.SpellingErrors If InStr(StrExcl, "," & Rng.Text & ",") = 0 Then If Rng.GetSpellingSuggestions.Count > 0 Then Set oSuggestions = Rng.GetSpellingSuggestions Rng.Text = oSuggestions(1) Else Rng.HighlightColorIndex = wdPink End If Else Rng.HighlightColorIndex = wdBrightGreen End If Next End Sub As for grammar corrections - aside from the fact there's no way to automate this, why would you want to do anything about the grammar of the source material? It is what it is!
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#8
|
|||
|
|||
![]()
I have to agree with Paul and Charles. It is futile. Here is a few simple misspelled words before and after Paul's macro:
Teet - Test Teeeesssssttttt - Test Teessst - Test Taaart - Tart Tarrrrt -Tart Wiescougowizc Tet Test Teeeesssssttttt Test Teesta Test Teacart Tart Turret Tart Wiescougowizc Edit: In the text above after running Paul's macro the second listed word is highlighted pink and the last (added as an exception) is highlighted green. Now the text has four wrong words instead of four misspelled words. Are you any better off? Here you can clearly see what and where they are wrong and correct them manually. In a million documents, you might as well roll up your sleeves and manually correct them in the first place. Last edited by gmaxey; 03-08-2017 at 07:12 PM. |
#9
|
|||
|
|||
![]() Quote:
Quote:
"I went shopping , but i did not buy anything" There would be a blue line because I left a space before the comma. Now the problem is not the blue line, the problem is that I would like to find a way to accept Word's grammatical suggestions. Is there a way to integrate the Macro so that it also accepts the first suggestion for grammar errors/blue lines (integrating the spelling errors which the macro you created so brilliantly does)? |
#10
|
||||
|
||||
![]()
I'd have thought my previous reply made that clear enough - VBA has no GetGrammarSuggestions equivalent to GetSpellingSuggestions.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#11
|
|||
|
|||
![]()
That's what I thought.. Hence, no way to accept automatically Word's suggestions on grammar? Do I have to run the Spell&Grammar check and go through one by one?
|
#12
|
||||
|
||||
![]()
Apparently. Although a macro could be used, the best it might do is highlight the issues; you'd then have to decide what to do about them.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#13
|
|||
|
|||
![]() Quote:
I would have 2 last questions if you could be so kind as to reply 1. What would be the difference between the macro you have posted above and this macro below? Sub AcceptSpellingSuggestions() Dim er As Range For Each er In ActiveDocument.SpellingErrors If er.GetSpellingSuggestions.Count > 0 Then er.Text = er.GetSpellingSuggestions.Item(1).Name End If Next End Sub 2. would there be a way to integrate any of these two macros so that they would ignore words that begin with a capital letter that are being picked up as spelling mistakes , so that those remain unchanged ? |
#14
|
||||
|
||||
![]() Quote:
1. highlights (in Pink) any spelling errors for which there are no suggested corrections; and 2. provides for certain words to be added to an exclusions list so they're highlighted (Green) instead of being replaced. That's obvious from even a cursory read of the code. Quote:
Code:
Sub AutoSpellCorrect() Dim Rng As Range, oSuggestions As Variant, StrExcl As String StrExcl = ",word1,word2,word3," For Each Rng In ActiveDocument.Range.SpellingErrors With Rng If LCase(.Characters.First) = .Characters.First Then If InStr(StrExcl, "," & .Text & ",") = 0 Then If .GetSpellingSuggestions.Count > 0 Then Set oSuggestions = .GetSpellingSuggestions .Text = oSuggestions(1) Else .HighlightColorIndex = wdPink End If Else .HighlightColorIndex = wdBrightGreen End If Else .HighlightColorIndex = wdYellow End If End With Next End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#15
|
||||
|
||||
![]()
Cross-posted (all three topics) at: https://answers.microsoft.com/en-us/...c-c62c0f69c717
For cross-posting etiquette, please read: http://www.excelguru.ca/content.php?184
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Protected Document (Form) that allows Spell Check | beve56 | Word | 3 | 03-21-2014 06:15 PM |
Spell check checking only part of document | Adeyo | Word | 1 | 02-24-2013 10:49 PM |
Spell Check without User intervention | looney001 | Outlook | 0 | 01-10-2013 12:41 AM |
Spell Check Not Working For Particular User | newman | Outlook | 0 | 11-18-2012 08:45 PM |