편집자 별 변경 사항 찾기 (Microsoft Word)
구독자 Doris Bell은 Word 2000에서 변경 내용 추적이 설정된 문서에서 특정 편집자가 만든 모든 변경 내용을 찾을 수있는 방법이 있는지 물었습니다. 물론 빠른 대답은 Word 2002로 업그레이드하는 것입니다.이 기능은 검토 도구 모음에서 바로 사용할 수 있기 때문입니다.
그러나 Word 97과 Word 2000은 다른 이야기입니다. 추적 된 모든 변경 내용을 보거나 볼 수없는 기능 만 있습니다. 원하는 경우 특정 편집기에서 변경 사항을 검색 할 수있는 매크로를 만들어 결함을 해결할 수 있습니다. 다음 일반 단계에 따라 VBA 편집기에서 사용자 양식을 작성하여 시작하십시오.
-
Alt + F11을 눌러 VBA 편집기를 표시합니다.
-
삽입 메뉴에서 사용자 정의 양식을 선택하십시오. 편집기에 빈 사용자 양식이 표시됩니다.
-
도구 상자를 사용하여 양식의 왼쪽 근처에있는 양식에 Label 컨트롤을 배치합니다.
-
새로 배치 된 Label 컨트롤의 속성에서 Caption 속성을 “Author”(따옴표 제외)로 변경합니다.
-
도구 상자를 사용하여 3 단계에서 배치 한 레이블의 오른쪽에 ComboBox 컨트롤을 배치합니다.
-
ComboBox 컨트롤의 속성에서 Name 속성을 “cboAuthor”(따옴표 제외)로 변경합니다.
-
도구 상자를 사용하여 폼에 CommandButton 컨트롤을 배치합니다. 이것은 양식의 아래쪽 가장자리를 따라 있거나 오른쪽 가장자리에있을 수 있습니다. 너하기에 달렸다.
-
CommandButton 컨트롤의 속성에서 Name 속성을 “cmdFindNext”(따옴표 제외)로 변경합니다.
-
CommandButton 컨트롤의 속성에서 Caption 속성을 “찾기”(따옴표 제외)로 변경합니다.
-
도구 상자를 사용하여 폼에 다른 CommandButton 컨트롤을 배치합니다.
다른 CommandButton 컨트롤의 오른쪽 또는 바로 아래에 있어야합니다.
-
CommandButton 컨트롤의 속성에서 Name 속성을 “cmdExit”(따옴표 제외)로 변경합니다.
-
CommandButton 컨트롤의 속성에서 Caption 속성을 “Exit”(따옴표 제외)로 변경합니다.
-
원하는 모양에 맞게 전체 양식 크기를 조정하십시오.
이제 양식이 완성되었으며 이러한 컨트롤을 활용할 프로그래밍 코드를 추가하기 만하면됩니다. 전체 양식을 선택했는지 확인한 다음 F7 키를 눌러 코드 창을 표시하십시오. 이미 코드가있는 경우 (VBA에서 기본 코드를 제공 할 수 있음) 자유롭게 삭제하십시오. 그런 다음 코드 창에 다음 코드를 배치합니다.
Private Sub UserForm1_Initialize() Dim oRevision As Revision Dim bExists As Boolean bExists = False ' Go to beginning of document Selection.HomeKey Unit:=wdStory ' Loop through revisions and add authors For Each oRevision In ActiveDocument.Revisions If Me.cboAuthor.ListCount > 0 Then For i = 1 To Me.cboAuthor.ListCount If Me.cboAuthor.List(i - 1) = oRevision.Author Then bExists = True End If Next i ' If it doesn't already exist, add the author to list If Not bExists Then Me.cboAuthor.AddItem oRevision.Author End If bExists = False Else ' Add first Author to the list Me.cboAuthor.AddItem oRevision.Author End If Next oRevision End Sub Private Sub cmdExit_Click() Unload Me End Sub Private Sub cmdFindNext_Click() Dim iStart As Integer Dim iEnd As Integer Dim myRange As Range Dim iRevisions As Integer Dim iResponse As Integer Dim bAuthorFound As Boolean ' Collapse the Selection so that we don't include selected text Selection.Collapse wdCollapseEnd Selection.MoveRight wdCharacter, 2 ' Get the Range start and end positions iStart = Selection.Range.Start iEnd = ActiveDocument.Content.End Set myRange = ActiveDocument.Range(Start:=iStart, End:=iEnd) ' Count total number of revisions within range iRevisions = myRange.Revisions.Count If iRevisions > 0 Then ' Loop through all revisions in the range ' selecting first one found For i = 1 To iRevisions If myRange.Revisions(i).Author = Me.cboAuthor.Text Then myRange.Revisions(i).Range.Select bAuthorFound = True Exit For Else bAuthorFound = False End If Next i End If If Not bAuthorFound Then ' Ask if they would like to start from the beginning iResponse = MsgBox("Search from beginning?", vbYesNo, "Find Author") If iResponse = vbYes Then ' Go to top of document Selection.HomeKey Unit:=wdStory cmdFindNext_Click Else ' Exit Unload Me End If End If End Sub
나중에 새 사용자 양식을 실행하면 편집자를 선택하고 해당 편집자가 작성한 다음 편집을 찾는 방법이 제공됩니다. 이렇게하면 Word 2002에서와 같이 특정 편집기의 모든 편집 내용을 보는 것이 아니라 한 번에 하나의 편집 내용을 찾을 수 있습니다.
취할 수있는 다른 접근 방식이 있습니다. 매크로를 사용하여 문서에서 수행 된 모든 편집 내용을 “풀”하고 새 문서에서 편집자별로 정렬 할 수 있습니다. 다음 매크로는 이런 종류의 작업을 수행하는 방법을 보여줍니다. 결과 테이블은 원본 문서에서 수행 된 편집 유형을 나타냅니다.
Option Explicit Private Sub ShowAuthorAndRevisions() Dim sRevision As String Dim oRev As Revision Dim oDoc As Document Dim oRng As Range For Each oRev In ActiveDocument.Revisions With oRev sRevision = sRevision & .Author & vbTab _ & .Type & vbTab & .Range.Text & vbCrLf End With Next oRev ' Open a new document Set oDoc = Documents.Add With oDoc .Range.InsertAfter sRevision ' Convert the revisions to a table .Range.ConvertToTable Separator:=wdSeparateByTabs With .Tables(1) ' Sort the table by the author (i.e., the first column) .Range.Sort ' Add a new row to the beginning of the table .Range.Rows.Add BeforeRow:=.Range.Rows(1) With .Rows(1) ' insert column descriptions .Cells(1).Range.Text = "Author" .Cells(2).Range.Text = "Revision Type" .Cells(3).Range.Text = "Revision" End With End With ' insert a paragraph mark above the table Selection.SplitTable ' Insert a legend to make reading the revision type easier .Range.InsertBefore "Revision Type Legend:" & vbCrLf & _ "No Revision = 0 " & vbCrLf & _ "Revision Insert = 1 " & vbCrLf & _ "Revision Delete = 2 " & vbCrLf & _ "Revision Property = 3 " & vbCrLf & _ "Revision Paragraph Number = 4 " & vbCrLf & _ "Revision Display Field = 5 " & vbCrLf & _ "Revision Reconcile = 6 " & vbCrLf & _ "Revision Conflict = 7 " & vbCrLf & _ "Revision Style = 8 " & vbCrLf & _ "Revision Replace = 9 " & vbCrLf End With End Sub
문서의 각 개정에 대해이 매크로는 개정의 작성자, 유형 및 텍스트 (있는 경우)를 찾습니다. 그런 다음 매크로는 모든 개정을 표에 배치하고 작성자 이름별로 표를 정렬 한 다음 각 개정 유형을 설명하는 작은 범례를 삽입합니다.
_ 참고 : _
이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 인기있는 워드 프로세싱 소프트웨어입니다.)이 팁 (1303)은 Microsoft Word 97, 2000 및 2002에 적용됩니다.