Hi,
The proofing language is character level formatting often set in styles and it may be in the normal template. If you are willing to use some macros, it can be fixed.
Here are three macros:
For a single document:
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 UK 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
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
oShp.TextFrame.TextRange.LanguageID = wdEnglishUS
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
For problems with styles in the document:
Sub StyleEnglishUS()
' Written 14 December 2017
' Charles Kenyon
' Intended to set all styles to EnglishUS, 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"
Let aStyle.AutomaticallyUpdate = True
Case Else
Let aStyle.AutomaticallyUpdate = False
End Select
aStyle.LanguageID = wdEnglishUS
aStyle.NoProofing = False ' also turn on spelling and grammar checking
Next aStyle
ActiveDocument.UpdateStylesOnOpen = False ' For information on using this line, see:
' http://www.shaunakelly.com/word/sharing/willmyformatchange.html
On Error GoTo 0
End Sub
This is to change the normal template:
Sub StyleEnglishUSNormalTemplate()
' Written 24 April 2019
' Charles Kenyon
' Intended to set all styles in Normal template to EnglishUS, proofing, not automatitically update
' Use right after opening Word
' Language IDs https://docs.microsoft.com/en-us/office/vba/api/word.wdlanguageid
'
Application.ScreenUpdating = False
Application.NormalTemplate.OpenAsDocument
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"
Let aStyle.AutomaticallyUpdate = True
Case Else
Let aStyle.AutomaticallyUpdate = False
End Select
Let aStyle.LanguageID = wdEnglishUS
Let aStyle.NoProofing = False ' also turn on spelling and grammar checking
Next aStyle
Let ActiveDocument.UpdateStylesOnOpen = False ' For information on using this line, see:
' http://www.shaunakelly.com/word/sharing/willmyformatchange.html
ActiveDocument.Close SaveChanges:=True
Let Application.ScreenUpdating = True
Application.ScreenRefresh
MsgBox Title:="All done!", Prompt:="Proofing Language in all styles in the Normal template set to EnglishUS."
On Error GoTo -1
End Sub
Instructions for Installing Macros from Forums or Websites by Graham Mayor, MVP
See also Mastering the Spelling Checker by Suzanne Barnhill, MVP
This forum is a user-to-user support forum. I am a fellow user.
I hope this information helps.
Please let me know if you have any more questions or require further help.
You can ask for more help by replying to this post (Reply button below).
Regards