![]() |
#8
|
||||
|
||||
![]()
I didn't fiddle with the semi colon endings because your very first 'fixed' paragraph broke the rule of [sentences to end with a semi-colon]. - so it wasn't particularly clear what you wanted there. This code assumes your table formatting is done by the Table Style definitions. I've attached a result document with table style defined to match your look.
Code:
Sub DefinitionsTabulator() Dim aRng As Range, aTbl As Table, aPara As Paragraph, aCell As Cell Set aRng = ActiveDocument.Range For Each aPara In aRng.Paragraphs aPara.Range.Words.Last.Font.Reset 'remove bold from paragraph marks and autonumbers Next aPara With aRng.Find .ClearFormatting .Replacement.ClearFormatting .Text = "[:;, ^t]{1,5}means[:;, ]{1,5}" .Replacement.Text = "^t" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .Execute Replace:=wdReplaceAll .Text = "[ :]{1,5}^13" .Replacement.Text = ":^p" .Execute Replace:=wdReplaceAll Set aRng = ActiveDocument.Range aRng.ListFormat.ConvertNumbersToText .Text = "^13([a-z])\)" .Replacement.Text = "^13(\1)" .Execute Replace:=wdReplaceAll .Text = "^13(?)" .Replacement.Text = "|\1" .MatchWildcards = True .Font.Bold = False .Execute Replace:=wdReplaceAll .Text = "(?)^t" .Replacement.Text = "\1zzTabzz" .Font.Bold = False .Execute Replace:=wdReplaceAll End With Set aRng = ActiveDocument.Range Set aTbl = aRng.ConvertToTable(Separator:=wdSeparateByTabs, NumColumns:=2, AutoFitBehavior:=wdAutoFitFixed) With aTbl .Style = "Table Grid Light" 'choose a table style that matches your preferred table look .ApplyStyleHeadingRows = False .ApplyStyleLastRow = False .ApplyStyleFirstColumn = True 'make sure the table style has a bold first column .ApplyStyleLastColumn = False .Range.Style = wdStyleNormal For Each aCell In .Columns(1).Cells If aCell.Range.Characters.First = "[" Then aCell.Range.Characters.First.InsertAfter Text:="""" aCell.Range.Characters.Last.InsertBefore Text:="""" Else aCell.Range.Characters.First.InsertBefore Text:="""" aCell.Range.Characters.Last.InsertBefore Text:="""" End If Next aCell End With 'Reinstate the tabs and paragraphs With aRng.Find .ClearFormatting .Replacement.ClearFormatting .MatchWildcards = False .Text = "|" .Replacement.Text = "^p" .Execute Replace:=wdReplaceAll .Text = "zzTabzz" .Replacement.Text = "^t" 'or a space if you prefer .Execute Replace:=wdReplaceAll End With End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Insert Block Quote into Numbered List | krose4088 | Word | 4 | 12-10-2020 02:29 PM |
![]() |
Dave T | Word VBA | 2 | 04-28-2019 11:00 PM |
![]() |
jeffreybrown | Word VBA | 8 | 12-04-2018 06:01 PM |
Word 2010 - Remove square-bracket encased string in large document | IntestinalWorm | Word | 1 | 06-20-2017 01:14 AM |
![]() |
nothing_kills | Drawing and Graphics | 7 | 01-20-2014 10:57 PM |