JustinEzequiel
Programmer
Running a macro recorded by a colleague on MS Word 2003 SP1 causes memory usage to increase continuously (checked using task manager) until my machine (Windows XP SP2+256 MB of RAM) crashes.
The same macro runs just fine on a different machine but with MS Word 2000.
A modified version (stripped of unsupported method/property calls) also runs fine with MS Word 97 (Windows 98+256 MB of RAM).
Google gives me
This hotfix package also fixes the following issue that was not previously documented in a Microsoft Knowledge Base article:• When you programmatically loop through references to the ProofreadingError objects from a document range in Word 2003, memory usage increases every time that you run the Microsoft Visual Basic for Applications (VBA) macro.
I am unable to get this "hotfix" as my license apparently does not include support.
I've also checked MS's newsgroup
All I got from posts there was that others are also having similar problems with Word 2003 and Word XP.
I will check for an updated printer driver but I doubt that is what's wrong as all our machines use the same printer.
Windows Update tells me I've already installed all the current updates.
I've turned off "smart tags", deleted all .tmp files from my %TEMP% folder, and deleted my normal.dot all for naught.
What else should I try?
The same macro runs just fine on a different machine but with MS Word 2000.
A modified version (stripped of unsupported method/property calls) also runs fine with MS Word 97 (Windows 98+256 MB of RAM).
Google gives me
This hotfix package also fixes the following issue that was not previously documented in a Microsoft Knowledge Base article:• When you programmatically loop through references to the ProofreadingError objects from a document range in Word 2003, memory usage increases every time that you run the Microsoft Visual Basic for Applications (VBA) macro.
I am unable to get this "hotfix" as my license apparently does not include support.
I've also checked MS's newsgroup
All I got from posts there was that others are also having similar problems with Word 2003 and Word XP.
I will check for an updated printer driver but I doubt that is what's wrong as all our machines use the same printer.
Windows Update tells me I've already installed all the current updates.
I've turned off "smart tags", deleted all .tmp files from my %TEMP% folder, and deleted my normal.dot all for naught.
What else should I try?
Code:
Sub clean()
'
' clean Macro
' Macro recorded 2/16/05 by R5-20
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "><"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<<"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = ">>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = ">"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
Selection.WholeStory
With Selection.Font
.Spacing = 0
.Scaling = 100
.Position = 0
End With
With Selection.ParagraphFormat
With .Shading
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorAutomatic
End With
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
With .Borders
.DistanceFromTop = 1
.DistanceFromLeft = 4
.DistanceFromBottom = 1
.DistanceFromRight = 4
.Shadow = False
End With
End With
With Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
Selection.Font.Color = wdColorAutomatic
With Selection.ParagraphFormat
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
With .Borders
.DistanceFromTop = 1
.DistanceFromLeft = 4
.DistanceFromBottom = 1
.DistanceFromRight = 4
.Shadow = False
End With
End With
With Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
Selection.Font.Color = wdColorAutomatic
With Selection.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
End With
Selection.Font.Name = "New Century Schoolbook"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = """"
.Replacement.Text = """"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "'"
.Replacement.Text = "'"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub