문자 빈도 수 (Microsoft Word)
Scott은 문서에있는 모든 문자의 “빈도 수”를 얻는 방법을 찾고 있습니다. 그는 각 문자 (ASCII 코드 9에서 255까지)가 몇 번 발생하는지 알고 싶습니다. 찾기 및 바꾸기를 사용하여 개별 문자의 수를 결정할 수 있지만 (간단히 문제의 문자를 검색 한 다음 자체로 대체) 이러한 접근 방식은 247에 대해 수행해야하는 경우 지루할 것입니다. 원하는 정보를 얻기 위해 다른 문자 코드.
이러한 작업은 매크로로 수행해야하지만 접근하는 방법에는 여러 가지가 있습니다. 한 가지 방법은 Characters 컬렉션의 각 구성원을 단계별로 살펴보고 각 구성원을 검사하고 해당 문자를 여러 카운터 중 하나에 할당하는 매크로를 작성하는 것입니다.
Sub CountChars1() Dim iCount(0 To 255) As Integer Dim i As Integer Dim vCharacter As Variant Dim sTemp As String ' Initialize the array For i = 0 To 255 iCount(i) = 0 Next i ' Fill the array For Each oCharacter In ActiveDocument.Characters i = Asc(oCharacter) iCount(i) = iCount(i) + 1 Next ' Add document for results Documents.Add Selection.TypeText Text:="ASCII Character Count" & vbCrLf ' Only output codes 9 through 255 For i = 9 To 255 sTemp = Chr(i) If i < 32 Then sTemp = Trim(Str(i)) sTemp = sTemp & Chr(9) & Trim(Str(iCount(i))) sTemp = sTemp & vbCrLf Selection.TypeText Text:=sTemp Next i End Sub
매크로는 iCount 배열을 사용하여 각 문자 코드의 개수를 누적 한 다음 결과를 출력하기 위해 새 문서를 만듭니다. (결과 문서는 원하는 방식으로 서식을 지정할 수 있습니다.)
이 방법은 비교적 짧은 문서 (최대 몇 페이지)에 적합합니다. 문서가 길어지면 매크로가 느려집니다. 왜?
어떤 이유로 Characters 컬렉션을 사용하는 데 많은 시간이 걸리기 때문입니다. 문서에 대해 매크로가 너무 느리게 실행되면 문자열로만 작동하도록 약간 변경하는 것이 좋습니다.
Sub CountChars2() Dim iCount(0 To 255) As Long Dim i As Long Dim j as integer Dim lCharCount As Long Dim sDoc As String Dim sTemp As String ' Initialize the array For i = 0 To 255 iCount(i) = 0 Next i ' Assign document to a huge string lCharCount = ActiveDocument.Characters.Count sDoc = ActiveDocument.Range(0, lCharCount) ' Fill the array For i = 1 to Len(sDoc) j = Asc(Mid(sDoc, i, 1)) iCount(j) = iCount(j) + 1 Next ' Add document for results Documents.Add Selection.TypeText Text:="ASCII Character Count" & vbCrLf ' Only output codes 9 through 255 For i = 9 To 255 sTemp = Chr(i) If i < 32 Then sTemp = Trim(Str(i)) sTemp = sTemp & Chr(9) & Trim(Str(iCount(i))) sTemp = sTemp & vbCrLf Selection.TypeText Text:=sTemp Next i End Sub
이 매크로 버전은 전체 문서를 단일 문자열 인 sDoc으로 채 웁니다. 이 문자열은 매크로에 의해 매우 빠르게 처리 될 수 있습니다. (635 페이지 문서는 내 시스템에서 처리하는 데 약 30 초 밖에 걸리지 않습니다.)이 버전은 더 긴 문서에서 작동하도록 만들어 졌기 때문에 일부 변수 유형이 더 많은 수의 가능성을 반영하도록 변경되었습니다.
_ 참고 : _
이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 널리 사용되는 워드 프로세싱 소프트웨어입니다.)이 팁 (112)은 Microsoft Word 2007, 2010, 2013 및 2016에 적용됩니다. 여기에서 Word의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / word-Character_Frequency_Count [문자 빈도 수]
.