原始來源:patenting a life
http://thinkpatent.blogspot.com/
patent amendment and word vba
To convert the track change formatting to regular word formatting.
The code will change deletion to strikethrough, deletion of 5 chars or less is denoted using [[ ]] . Insertion is formatted with underline.
Sub TypeAndStrike()
' Converts tracked revisions in the active document into "type and
' written by Chip Orange.
' modified by iFly
'
Dim chgAdd As Word.Revision
' disable tracked revisions.
If ActiveDocument.Revisions.Count = 0 Then
MsgBox "There are no revisions in this document", vbOKOnly
Else
ActiveDocument.TrackRevisions = False
For Each chgAdd In ActiveDocument.Revisions
If chgAdd.Type = wdRevisionDelete Then
If chgAdd.Range.Characters.Count <= 5 Then
Dim temp1 As Range
Set temp1 = chgAdd.Range
chgAdd.Range.Font.StrikeThrough = False
chgAdd.Reject
temp1.InsertBefore ("[[")
temp1.InsertAfter ("]]")
MsgBox temp1.Text
Else
'normal change just strikthrough
chgAdd.Range.Font.StrikeThrough = True
chgAdd.Reject
End If
ElseIf chgAdd.Type = wdRevisionInsert Then
' It's an addition, so underline it.
chgAdd.Range.Font.Underline = wdUnderlineSingle
chgAdd.Accept
Else
MsgBox ("Unexpected Change Type Found"), vbOKOnly + vbCritical
chgAdd.Range.Select ' move insertion point
End If
Next chgAdd
End If
End Sub
Another improvement to change the portion in active selection, instead on the whole document. Save the macro in normal.dot, add a command (tool-customize - look for macro) to the toolbar !!
Sub TypeAndStrike()
' Converts tracked revisions in the active document into "type and
' written by Chip Orange.
' modified by Ifly
' Only operate to selected area in word document
Dim chgAdd As Word.Revision
Dim iStart As Integer
Dim iEnd As Integer
iStart = Selection.Range.Start
iEnd = Selection.Range.End
Set myRange = ActiveDocument.Range(Start:=iStart, End:=iEnd)
' disable tracked revisions.
If myRange.Revisions.Count = 0 Then
MsgBox "There are no revisions in this document", vbOKOnly
Else
ActiveDocument.TrackRevisions = False
For Each chgAdd In myRange.Revisions
If chgAdd.Type = wdRevisionDelete Then
If chgAdd.Range.Characters.Count <= 5 Then
Dim temp1 As Range
Set temp1 = chgAdd.Range
chgAdd.Range.Font.StrikeThrough = False
chgAdd.Reject
temp1.InsertBefore ("[[")
temp1.InsertAfter ("]]")
Else
'normal change just strikthrough
chgAdd.Range.Font.StrikeThrough = True
chgAdd.Reject
End If
ElseIf chgAdd.Type = wdRevisionInsert Then
' It's an addition, so underline it.
chgAdd.Range.Font.Underline = wdUnderlineSingle
chgAdd.Accept
Else
MsgBox ("Unexpected Change Type Found"), vbOKOnly + vbCritical
chgAdd.Range.Select ' move insertion point
End If
Next chgAdd
End If
End Sub
Posted by ifly
at 4:21 PM
沒有留言:
張貼留言