Adding Shaded Rows between Rows

S

Suzanne S. Barnhill

There's no way to do this automatically (such that the alternation will be
preserved if you add single rows) except by applying a table style that
includes alternate row shading.
 
S

StevenM

: << Can't remember how to automatically shade every other row.
Can you help? >>

The following macro should help. If you need instructions on installing
macros, see: http://www.gmayor.com/installing_macro.htm

If you add new rows after running the macro, just run it again.

Sub ShadeEveryOtherRow()
Dim oTable As Table
Dim oRow As Row
Dim bClear As Boolean

On Error GoTo ErrorHandler
bClear = True
Set oTable = Selection.Tables(1)
For Each oRow In oTable.Rows
If bClear Then
oRow.Shading.BackgroundPatternColor = wdColorWhite
Else
oRow.Shading.BackgroundPatternColor = wdColorGray15
End If
If bClear = True Then
bClear = False
Else
bClear = True
End If
Next oRow

Exit Sub
ErrorHandler:
If Err.Number = 5941 Then
MsgBox "The cursor must be positioned in the table you want to
shade." _
& vbCr & vbCr & "Position the cursor and run this macro
again."
End If
End Sub
 
S

StevenM

The following is a slightly improved version of my earlier macro.

'****
'* Macro: ShadeEveryOtherRow shades every other row of a table.
'* If you add new rows to the table, just re-run this macro.
'* If you want the first row to be shaded, change "bClear = True" to False.
'* There are a number of different shades of Grey possible,
'* wdColorGray05 is very light, wdColorGray50 is very dark,
'* by increments of five, there are shades between these two.
'****
Sub ShadeEveryOtherRow()
Dim oRow As Row
Dim bClear As Boolean
If Selection.Information(wdWithInTable) = False Then
MsgBox "The cursor must be positioned in the table you want to
shade." _
& vbCr & vbCr & "Position the cursor and run this macro
again."
Else
bClear = True
For Each oRow In Selection.Tables(1).Rows
If bClear Then
oRow.Shading.BackgroundPatternColor = wdColorWhite
Else
oRow.Shading.BackgroundPatternColor = wdColorGray10
End If
bClear = Not bClear
Next oRow
End If
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top