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
Caveat Emptor! The National Library of Australia has OCR'd millions of pages from newspapers and engaged a team of volunteer proof-readers over many years to go through them all an manually correct the spelling mistakes. This major institution - with far more $ and expertise to throw at the matter than you or I - recognised that relying on an automated spell-check just wouldn't do the job to the standard required. The project is ongoing.
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!