Rapidly switching proofing language in Microsoft Word
After selecting the whole text (hopefully with Ctrl+A), a quicker way is to click the Language button on the status bar, then select the Language on the window that opened. You will not have 4 shortcuts but you will have reduced the amount of clicks.
if you don't see the Language button, right-click on the status bar, then select Language.
You could use macros. To be thorough here are two demonstration macros:
Sub ProofingLanguageEnglishUSAllStory() ' based on field updater by Greg Maxey
' https://gregmaxey.com/word_tip_pages/word_fields.html
' Charles Kenyon 6 November 2018
' https://answers.microsoft.com/en-us/msoffice/forum/all/force-all-documents-to-be-edited-in-uk-english/df6d1f8e-5426-49d9-bea0-5620d0208294
' Changes proofing language to English US in all stories of document
' Language IDs https://docs.microsoft.com/en-us/office/vba/api/word.wdlanguageid
Dim rngStory As Word.range
Dim lngValidate As Long ' do not know purpose of this
Dim oShp As Shape
lngValidate = ActiveDocument.Sections(1).Headers(1).range.StoryType
For Each rngStory In ActiveDocument.StoryRanges
'Iterate through all linked stories
Do
On Error Resume Next
rngStory.LanguageID = wdEnglishUS
rngStory.NoProofing = False
Select Case rngStory.StoryType
Case 6, 7, 8, 9, 10, 11
If rngStory.ShapeRange.Count > 0 Then
For Each oShp In rngStory.ShapeRange
If oShp.TextFrame.HasText Then
' Comment out or delete the next line if you do not want to change proofing language
oShp.TextFrame.TextRange.LanguageID = wdEnglishUS
' Comment out or delete the next line if you do not want to change the "no proofing" setting
oShp.TextFrame.TextRange.NoProofing = False
End If
Next
End If
Case Else
'Do Nothing
End Select
On Error GoTo -1
'Get next linked story (if any)
Set rngStory = rngStory.NextStoryRange
Loop Until rngStory Is Nothing
Next
End Sub
-
The second one is to change the proofing language of allStyles to English UK:
-
Again, change the language ID for a different language
-
This also makes sure that "do not check Spelling or Grammar" is not checked - you can delete or comment out this line if you want
Sub StyleEnglishUK()
' Written 21 March 2018
' Charles Kenyon
' Intended to set all styles to EnglishUK, proofing, not automatitically update
' Language IDs https://docs.microsoft.com/en-us/office/vba/api/word.wdlanguageid
'
Dim aStyle As Style
On Error Resume Next ' Some styles have no language attribute and will give an error
For Each aStyle In ActiveDocument.Styles
Select Case aStyle.NameLocal
Case "TOC 1", "TOC 2", "TOC 3", "TOC 4", "TOC 5", "TOC 6", "TOC 7", "TOC 8", "TOC 9", "Table of Figures", "Table of Authorities"
Let aStyle.AutomaticallyUpdate = True
Case Else
Let aStyle.AutomaticallyUpdate = False
End Select
Let aStyle.LanguageID = wdEnglishUK
Let aStyle.NoProofing = False
Next aStyle
Let ActiveDocument.UpdateStylesOnOpen = False ' For information on using this line, see:
' http://www.shaunakelly.com/word/sharing/willmyformatchange.html
On Error GoTo -1
End Sub
You will need to put in the appropriate language IDs.
- The first macro does what you are already doing except it also picks up the language in any textboxes and in headers and footers, footnotes, etc.
- The second macro deals with styles in the document.
You could chain the two macros together so they could be run from a single shortcut.
More on this can be found in my article on the Microsoft Answers site. If you need more help with this or questions, please comment.