Hi Jennifer,
The code runs just fine for me, on both Word 2003 & 2010. Maybe there's a problem with your document or your Word 2007 installation. Repairing Word (Word Options|Resources|Diagnose) may help.
I note that you've declared your variables thus:
Code:
Dim SettingBreakOld, SettingAutoFitOld, SettingFontSw, SettingFontOld, _
SettingHdrRowSw, SettingHdrRowOld, SettingHdrBrdrOffSw, SettingSelectTableSw _
As Boolean 'Setting variables
Dim Msg, MsgAutoFit, MsgBreak, MsgHdrRow, MsgFont, MsgBorder As String
You should be aware that this means that all except SettingSelectTableSw and MsgBorder are Variants.
I also note that, with the borders for example, you have an option to delete them or leave them alone. IMHO it would be better to allow the user to choose to have or not have the borders, including on a table that presently lacks them. In that case, you'd need something like:
Code:
Dim Bdr As Long
If SettingHdrBrdrOffSw Then 'If no header row borders, turn all but bottom off
Bdr = 0
MsgBorder = "Header row borders off"
Else
Bdr = 1
MsgBorder = "Header row borders on"
End If
With .Rows(1)
.Borders(wdBorderTop).LineStyle = Bdr
.Borders(wdBorderLeft).LineStyle = Bdr
.Borders(wdBorderRight).LineStyle = Bdr
.Borders(wdBorderVertical).LineStyle = Bdr
.Borders(wdBorderDiagonalDown).LineStyle = Bdr
.Borders(wdBorderDiagonalUp).LineStyle = Bdr
End With
BTW, you could reduce:
If SettingSelectTableSw Then Selection.Tables(1).Select 'Leave table selected?
to:
If SettingSelectTableSw Then .Select 'Leave table selected?