Macro in template documents wont run in other documents
I wrote some code to colour lines in a table when I run the macro. The works fine in the template document itself (.docm), but when I open a document from the template it doesn't work.
I've a button to press, and also one on the ribbon (although I believe this is just the same thing in two different places). I've been doing VBA for Excel for years, but this is my first foray into Word. I feel I'm missing something, can anyone help?
Code is: (Also a snipping tool version in the attachments) - can't provide the actual document, sorry
Sub ColourTable()
Dim objTable As Table
Dim iRowCounter As Integer
Dim iColumnCounter As Integer
Dim lngBadColor As Long
Dim lngGoodColor As Long
' Predefine colors
lngBadColor = RGB(255, 0, 0)
lngGoodColor = RGB(169, 208, 142)
' Loop through all tables in document
For Each objTable In ThisDocument.Tables
For iRowCounter = 1 To objTable.Rows.Count
For iColumnCounter = 1 To objTable.Columns.Count
' Get Table cell
With objTable.Cell(iRowCounter, iColumnCounter)
If InStr(.Range.Text, "TO BE DONE") > 0 Then .Shading.BackgroundPatternColor = lngBadColor
If InStr(.Range.Text, "Yes") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
If InStr(.Range.Text, "N/A") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
If InStr(.Range.Text, "None") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
' If InStr(.Range.Text, "Very good") > 0 Then .Shading.BackgroundPatternColor = lngVeryGoodColor
' If InStr(.Range.Text, "Minor") > 0 Then .Shading.BackgroundPatternColor = lngGoodColor
End With
Next
Next
Next
End Sub
|