How to Convert Word Comments Into Resolved State in Bulk via VBA
🔍 WiseChecker

How to Convert Word Comments Into Resolved State in Bulk via VBA

When you review a Word document with dozens or hundreds of comments, marking each one as resolved manually takes too long. Word does not provide a built-in button to resolve all comments at once. This article explains how to use a VBA macro to convert all comments into the resolved state in a single action. You will learn the macro code, how to run it, and what to watch for when using it on shared or protected documents.

Key Takeaways: Bulk Resolve Comments in Word With VBA

  • Alt + F11 (VBA Editor): Opens the environment where you paste and run the macro to resolve all comments.
  • ActiveDocument.Comments(i).Done = True: The single line of code that marks each comment as resolved.
  • File > Options > Trust Center > Trust Center Settings > Enable all macros: Required security setting before the macro will run.

ADVERTISEMENT

How Word Handles Comment Resolution

Word stores each comment as a Comment object in the document model. Every comment has a Done property. When you right-click a comment and choose Mark Comment Done, Word sets Done = True. The comment remains visible but appears grayed out or struck-through depending on your Word version and view settings.

Word does not expose a built-in command to set Done on all comments simultaneously. The Review tab offers Next Comment and Previous Comment navigation but no bulk resolution button. VBA bypasses this limitation by iterating through the Comments collection and setting the property on each item.

No third-party add-in is required. The macro works in Word 2016, Word 2019, Word 2021, and Word for Microsoft 365 on Windows. Mac users can use a similar approach with the Visual Basic Editor, but the menu paths differ slightly.

Prerequisites Before Running the Macro

Before you run any VBA macro in Word, you must change two settings.

Enable the Developer Tab

The Developer tab is hidden by default. To show it:

  1. Open Word Options
    Go to File > Options > Customize Ribbon.
  2. Check Developer
    In the right pane under Main Tabs, check Developer. Click OK.

Adjust Macro Security

By default, Word blocks all macros. To allow your own macro to run:

  1. Open Trust Center
    Go to File > Options > Trust Center > Trust Center Settings.
  2. Enable macros
    Select Enable all macros. This is safe only if you run macros you wrote or trusted sources provided.
  3. Check VBA project access
    On the same dialog, go to Macro Settings and ensure Trust access to the VBA project object model is checked.

ADVERTISEMENT

Steps to Write and Run the Bulk Resolve Macro

Follow these steps to create, paste, and execute the VBA macro that resolves all comments.

  1. Open the VBA editor
    Press Alt + F11 on your keyboard. Alternatively, click Developer > Visual Basic.
  2. Insert a new module
    In the VBA editor, go to Insert > Module. A blank code window opens.
  3. Paste the macro code
    Copy the following code and paste it into the module window:

    Sub ResolveAllComments()
       Dim c As Comment
       For Each c In ActiveDocument.Comments
          c.Done = True
       Next c
       MsgBox "All comments have been marked as resolved."
    End Sub

  4. Run the macro
    Press F5 while the cursor is inside the macro code, or close the VBA editor and press Alt + F8 to open the Macros dialog. Select ResolveAllComments and click Run.
  5. Verify the result
    Switch to the document. All comments should now appear with a strikethrough line or grayed text, indicating they are resolved. The Reviewing Pane also shows the resolved status.

The macro runs instantly even on documents with hundreds of comments. It does not delete comments or modify any text.

If You Need to Unresolve All Comments

Sometimes you need to revert the bulk resolution. Create a second macro that sets Done = False for every comment.

  1. Add a new sub
    In the same module, paste this code below the first macro:

    Sub UnresolveAllComments()
       Dim c As Comment
       For Each c In ActiveDocument.Comments
          c.Done = False
       Next c
       MsgBox "All comments have been unresolved."
    End Sub

  2. Run the unresolve macro
    Press Alt + F8, select UnresolveAllComments, and click Run.

Common Issues When Running the Macro

The macro does not appear in the Macros list

This happens if you pasted the code into the wrong location. Make sure you inserted a Module under the Normal project or the current document project. Code placed inside a ThisDocument object will not show in the Macros dialog.

Word says "Macros are disabled"

Revisit the Trust Center settings. If your document came from the internet, Word may block macros even with Enable all macros active. Save the document to a trusted location or unblock the file: right-click the document in File Explorer, choose Properties, and check Unblock.

The macro resolves only some comments

Comments inside tracked changes or comments in locked sections may not be accessible to VBA. Unprotect the document first. Go to Review > Restrict Editing > Stop Protection if a password is set.

The macro affects comments in headers or footers

The ActiveDocument.Comments collection includes comments in the main document body only. Comments in headers, footers, text boxes, or footnotes are not included. Word does not support programmatic resolution of comments in those areas.

VBA Bulk Resolve vs Manual Resolve: Key Differences

Item VBA Bulk Resolve Manual Resolve (Right-click each)
Time for 100 comments Under 1 second 5 to 10 minutes
Risk of skipping comments None — all comments are processed High — easy to miss comments
Ability to undo Easy with a second macro Manual unresolve each comment
Works in protected documents No — must unprotect first Yes, if individual comments are editable
Requires VBA knowledge Basic copy-paste None

The VBA macro is the fastest method when you need to resolve large numbers of comments. Manual resolution is better for documents where you want to review each comment individually before marking it done.

You can now resolve all comments in a Word document with a single macro. Save the macro in your Normal.dotm template to make it available in every document. For advanced control, modify the loop to resolve only comments by a specific author by checking the c.Author property before setting Done = True.

ADVERTISEMENT