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.
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:
- Open Word Options
Go to File > Options > Customize Ribbon. - 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:
- Open Trust Center
Go to File > Options > Trust Center > Trust Center Settings. - Enable macros
Select Enable all macros. This is safe only if you run macros you wrote or trusted sources provided. - Check VBA project access
On the same dialog, go to Macro Settings and ensure Trust access to the VBA project object model is checked.
Steps to Write and Run the Bulk Resolve Macro
Follow these steps to create, paste, and execute the VBA macro that resolves all comments.
- Open the VBA editor
Press Alt + F11 on your keyboard. Alternatively, click Developer > Visual Basic. - Insert a new module
In the VBA editor, go to Insert > Module. A blank code window opens. - 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 - 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. - 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.
- 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 - 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.