Чтобы распознать все виды «серого», вы можете сравнить красные / зеленые / синие части цвета фона. Если они идентичны, то это черный (все ноль), белый (все 255) или серый.
Если серый, то вы можете скрыть всю таблицу, скрыв ее шрифт.
Первый пример (скрытие всей таблицы на основе фона первой ячейки):
Sub ClearTableBGColor()
Dim t As Table
Dim SearchColor As Long
Dim r As Byte, g As Byte, b As Byte
For Each t In ActiveDocument.Tables
SearchColor = t.Range.Cells(1).Shading.BackgroundPatternColor
If SearchColor < 0 Then SearchColor = &H1000000 + SearchColor
r = SearchColor Mod 256 ' red part
g = SearchColor \ 256 Mod 256 ' green part
b = SearchColor \ (2 ^ 16) Mod 256 ' blue part
If (r = g) And (g = b) Then ' all parts identical?
If r > 0 And r < 255 Then ' neither black nor white?
t.Range.Font.Hidden = True ' hide table with grey background
End If
End If
Next t
End Sub
Второй пример: скрытие каждой строки индивидуально на основе первой ячейки строки:
Sub ClearTableRowsBGColor()
Dim t As Table
Dim tableRow As Row
Dim SearchColor As Long
Dim r As Byte, g As Byte, b As Byte
For Each t In ActiveDocument.Tables
For Each tableRow In t.Rows
SearchColor = tableRow.Range.Cells(1).Shading.BackgroundPatternColor
If SearchColor < 0 Then SearchColor = &H1000000 + SearchColor
r = SearchColor Mod 256 ' red part
g = SearchColor \ 256 Mod 256 ' green part
b = SearchColor \ (2 ^ 16) Mod 256 ' blue part
If (r = g) And (g = b) Then ' all parts identical?
If r > 0 And r < 255 Then ' neither black nor white?
tableRow.Range.Font.Hidden = True ' hide grey
End If
End If
Next tableRow
Next t
End Sub