![]() |
#1
|
|||
|
|||
![]()
Using Word 2007 in a corporate environment, my colleague DTPs and I regularly have to reformat tables to our template design. Although I have stored two designs as Quick Parts and, with one internal borders exception, can apply this design, I am trying to create a macro to format any existing table this way. I am only somewhat familiar with VBA and hope someone can solve this riddle:
I have no luck starting the macro recorder and then using the New Table Style dialogue. The borders come out much too thick and the dialogue insists on reopening after the table is formatted when I run the macro. Therefore, have recorded my macro with an unformatted table in place, going through steps to format it by selection. When I run the macro, however, it calls up debug and points to the first diagonal borders line in the macro, which I have highlighted in bold blue below. I have no idea what the problem is. Here's the macro. Any help will be most appreciated. Sub KTableH() ' ' KTableH Macro ' ' Selection.Tables(1).Select With Selection.Tables(1) With .Borders(wdBorderLeft) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderRight) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderTop) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderBottom) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderHorizontal) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderVertical) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone .Borders.Shadow = False End With With Options .DefaultBorderLineStyle = wdLineStyleSingle .DefaultBorderLineWidth = wdLineWidth050pt .DefaultBorderColor = 8284228 End With Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.SelectRow Selection.Shading.Texture = wdTextureNone Selection.Shading.ForegroundPatternColor = wdColorAutomatic Selection.Shading.BackgroundPatternColor = 8284228 With Selection.Cells With .Borders(wdBorderLeft) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderRight) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderTop) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderBottom) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = 8284228 End With With .Borders(wdBorderVertical) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = -603914241 End With .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone .Borders.Shadow = False End With With Options .DefaultBorderLineStyle = wdLineStyleSingle .DefaultBorderLineWidth = wdLineWidth050pt .DefaultBorderColor = -603914241 End With End Sub |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
Takket | Word VBA | 2 | 03-28-2014 04:58 PM |
need a macro that does the following | atomsk | Word VBA | 0 | 07-05-2010 07:29 AM |
Please help | Jarrod | Word | 1 | 06-05-2010 06:31 AM |
Macro help | NEHicks503 | Excel | 0 | 04-16-2010 07:29 AM |
![]() |
caution5697 | Word | 3 | 04-22-2009 11:53 PM |