Share via

Macro (VBA) for turning off spelling and grammar check (no proofing) for selected text? MS Word for MacOS

JIP-3077 5 Reputation points
2026-03-06T01:26:11.2233333+00:00

What would a macro look like that can turn of spell/grammar check (no proofing) for a selected bit of text?

I tried this:

Sub SetNoProofing()
    ' Applies "Do not check spelling or grammar" to current selection
    Selection.LanguageID = wdNoProofing
    ' Alternative: Selection.NoProofing = True
End Sub

which mostly works, but some words resist the command, eg "Augenblick";

User's image

"Augenblicken" here reads like this in the Language box:

User's image

"Verführerisch" shows no spelling / grammar (ie reads identically). Both words are marked as English rather than German. But the language setting should be irrelevant if "Do not check..." is checked, which it is in both cases.

Any thoughts appreciated.

Microsoft 365 and Office | Word | For education | MacOS
0 comments No comments

3 answers

Sort by: Most helpful
  1. Bob Jones AKA CyberTaz MVP 434.7K Reputation points
    2026-03-06T20:02:35.74+00:00

    A macro is overkill IMO. This can be done easily by creating a Character Style.

    In the New Style dialog

    1. Name the Style [e.g., NoProof]
    2. Select Character as the Style type
    3. Leave all other settings as they are
    4. Choose Add to Template if you want it available in other documents
    5. Choose Add to Quick Style List if you wish
    6. Click the Format button in the lower left corner of the dialog
    7. Select Language
    8. Select the correct language
    9. Click the Do not check spelling or grammar box until it displays a check [probably twice]
    10. Click OK
    11. Click OK
    12. Click Close

    From then on, select the text & apply the Style. A keyboard shortcut can be assigned to the Style if you wish

    2 people found this answer helpful.

  2. Teddie-D 14,685 Reputation points Microsoft External Staff Moderator
    2026-03-06T04:46:25.26+00:00

    Hi @JIP-3077

    Thank you for posting your question in the Microsoft Q&A forum. 

    I’ve tested this on my side and cannot reproduce the issue. Using the Word UI, the Do not check spelling or grammar worked as expected, and the macro behaves correctly regardless of whether that option is enabled before running it.

    If the issue only occurs in one document, it may be related to document‑specific formatting or language metadata.  You might try copying the content into a new document to see if the behavior persists. Since I’m unable to reproduce the problem, I don’t have further troubleshooting steps to suggest. 

    As forum moderators, we don’t have access to internal systems for deeper investigation. Based on the channel tag, your account is a work or school account managed by your institution. In that case, please contact your IT administrator and ask them to raise a support ticket in the Microsoft 365 Admin Center on your behalf. 

    Thank you for your understanding.


    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

    0 comments No comments

  3. Q&A Assist
    2026-03-06T01:26:31.0266667+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The behavior is caused by how Word applies proofing settings to text ranges and form-field or language attributes, not by a limitation of wdNoProofing itself. To reliably turn off spelling and grammar checking for the entire current selection, the macro must:

    1. Clear automatic language detection.
    2. Explicitly set the language on the selected range.
    3. Set the NoProofing flag on that range.

    Example macro for Word on Mac (VBA):

    Sub SetNoProofingForSelection()
        Dim rng As Range
    
        If Selection Is Nothing Then Exit Sub
        If Selection.Range.Start = Selection.Range.End Then Exit Sub 'no text
    
        Set rng = Selection.Range
    
        ' Turn off automatic language detection for this range
        rng.NoProofing = False
        rng.LanguageID = wdEnglishUS   'or any language you prefer as base
        rng.LanguageIDFarEast = wdEnglishUS
        rng.LanguageIDOther = wdEnglishUS
    
        ' Now disable proofing
        rng.NoProofing = True
    End Sub
    

    If some words still show proofing marks, they may be inside fields or content controls, or have a different language attribute. In that case, extend the macro to iterate through Words, Fields, or ContentControls within Selection.Range and apply the same NoProofing = True and LanguageID = wdNoProofing to each subrange.

    To re-enable proofing later, run a complementary macro that sets NoProofing = False and assigns the desired language (for example, German) to the selection.


    References:

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.