همانطور که در حال تجزیه و تحلیل اسناد خود هستید، ممکن است تعجب کنید که آیا راهی برای ایجاد شمارش تعداد کلمات در سند وجود دارد. متأسفانه Word چنین ویژگی را ندارد، اما چند کار وجود دارد که می توانید انجام دهید.
ابتدا، اگر می خواهید بدانید که چند بار از یک کلمه یا عبارت خاص استفاده شده است، می توانید مراحل زیر را دنبال کنید:

شکل 1. تب Replace از کادر محاوره ای Find and Replace.
- Ctrl+H را فشار دهید تا تب Replace در کادر محاوره ای Find and Replace نمایش داده شود. (شکل 1 را ببینید.)
- در کادر Find What کلمه یا عبارتی را که می خواهید شمارش شود وارد کنید.
- در کادر Replace With ^& را وارد کنید . این دنباله کاراکتر به Word می گوید که می خواهید آنچه را که پیدا می کنید با هر چیزی که در کادر Find What قرار داده اید جایگزین کنید. (به عبارت دیگر، شما در حال جایگزینی کلمه یا عبارت با خودش هستید.)
- اگر در جستجوی کلمات تکی هستید، مطمئن شوید که روی کادر تیک Find Whole Words Only کلیک کرده اید.
- روی Replace All کلیک کنید. Word جایگزین ها را ایجاد می کند و به شما نشان می دهد که چند نمونه جایگزین شده است. این همان عددی است که شما می خواهید.
اگر فقط یک یا دو کلمه یا عبارتی که می خواهید درباره آن بدانید، دارید، این رویکرد عالی کار می کند. می توانید با استفاده از یک ماکرو برای جستجو در سند و شمارش برای شما، فرآیند را کمی خودکار کنید. ماکرو زیر از کاربر یک کلمه را می خواهد و سپس تعداد دفعاتی که آن کلمه در سند ظاهر می شود را می شمارد. تا زمانی که کاربر بر روی دکمه لغو کلیک کند، به درخواست کلمه دیگری ادامه خواهد داد.
Sub FindWords()
Dim sResponse As String
Dim iCount As Integer
" Input different words until the user clicks cancel
Do
" Identify the word to count
sResponse = InputBox( _
Prompt:="What word do you want to count?", _
Title:="Count Words", Default:="")
If sResponse > "" Then
" Set the counter to zero for each loop
iCount = 0
Application.ScreenUpdating = False
With Selection
.HomeKey Unit:=wdStory
With .Find
.ClearFormatting
.Text = sResponse
" Loop until Word can no longer
" find the search string and
" count each instance
Do While .Execute
iCount = iCount + 1
Selection.MoveRight
Loop
End With
" show the number of occurences
MsgBox sResponse & " appears " & iCount & " times"
End With
Application.ScreenUpdating = True
End If
Loop While sResponse <> ""
End Sub
اگر میخواهید تمام کلمات منحصربهفرد در یک سند را به همراه تعداد دفعاتی که هر یک از آنها در سند ظاهر میشوند، تعیین کنید، رویکرد متفاوتی لازم است. ماکرو زیر این کار را انجام می دهد.
Sub WordFrequency()
Const maxwords = 9000 "Maximum unique words allowed
Dim SingleWord As String "Raw word pulled from doc
Dim Words(maxwords) As String "Array to hold unique words
Dim Freq(maxwords) As Integer "Frequency counter for unique words
Dim WordNum As Integer "Number of unique words
Dim ByFreq As Boolean "Flag for sorting order
Dim ttlwds As Long "Total words in the document
Dim Excludes As String "Words to be excluded
Dim Found As Boolean "Temporary flag
Dim j, k, l, Temp As Integer "Temporary variables
Dim ans As String "How user wants to sort results
Dim tword As String "
Dim aword As Object "
Dim tmpName As String "
" Set up excluded words
Excludes = "[the][a][of][is][to][for][by][be][and][are]"
" Find out how to sort
ByFreq = True
ans = InputBox("Sort by WORD or by FREQ?", "Sort order", "WORD")
If ans = "" Then End
If UCase(ans) = "WORD" Then
ByFreq = False
End If
Selection.HomeKey Unit:=wdStory
System.Cursor = wdCursorWait
WordNum = 0
ttlwds = ActiveDocument.Words.Count
" Control the repeat
For Each aword In ActiveDocument.Words
SingleWord = Trim(LCase(aword))
"Out of range?
If SingleWord < "a" Or SingleWord > "z" Then
SingleWord = ""
End If
"On exclude list?
If InStr(Excludes, "[" & SingleWord & "]") Then
SingleWord = ""
End If
If Len(SingleWord) > 0 Then
Found = False
For j = 1 To WordNum
If Words(j) = SingleWord Then
Freq(j) = Freq(j) + 1
Found = True
Exit For
End If
Next j
If Not Found Then
WordNum = WordNum + 1
Words(WordNum) = SingleWord
Freq(WordNum) = 1
End If
If WordNum > maxwords - 1 Then
j = MsgBox("Too many words.", vbOKOnly)
Exit For
End If
End If
ttlwds = ttlwds - 1
StatusBar = "Remaining: " & ttlwds & ", Unique: " & WordNum
Next aword
" Now sort it into word order
For j = 1 To WordNum - 1
k = j
For l = j + 1 To WordNum
If (Not ByFreq And Words(l) < Words(k)) _
Or (ByFreq And Freq(l) > Freq(k)) Then k = l
Next l
If k <> j Then
tword = Words(j)
Words(j) = Words(k)
Words(k) = tword
Temp = Freq(j)
Freq(j) = Freq(k)
Freq(k) = Temp
End If
StatusBar = "Sorting: " & WordNum - j
Next j
" Now write out the results
tmpName = ActiveDocument.AttachedTemplate.FullName
Documents.Add Template:=tmpName, NewTemplate:=False
Selection.ParagraphFormat.TabStops.ClearAll
With Selection
For j = 1 To WordNum
.TypeText Text:=Trim(Str(Freq(j))) _
& vbTab & Words(j) & vbCrLf
Next j
End With
System.Cursor = wdCursorNormal
j = MsgBox("There were " & Trim(Str(WordNum)) & _
" different words ", vbOKOnly, "Finished")
End Sub
وقتی سندی را باز میکنید و این ماکرو را اجرا میکنید، از شما پرسیده میشود که آیا میخواهید فهرستی ایجاد کنید که بر اساس کلمه یا فرکانس مرتب شده است. اگر کلمه را انتخاب کنید، لیست حاصل به ترتیب حروف الفبا نشان داده می شود. اگر فرکانس را انتخاب کنید، لیست حاصل بر اساس تعداد دفعاتی که کلمه در سند ظاهر شده است به ترتیب نزولی است.
هنگامی که ماکرو در حال اجرا است، نوار وضعیت نشان می دهد که چه اتفاقی می افتد. بسته به اندازه سند و سرعت رایانه شما، تکمیل ماکرو ممکن است کمی طول بکشد. (من آن را با یک سند 719 صفحه ای با بیش از 349000 کلمه اجرا کردم و تکمیل آن حدود پنج دقیقه طول کشید.)
توجه داشته باشید که یک خط در ماکرو وجود دارد که مقداری را در رشته Excludes تعیین می کند. این رشته حاوی کلماتی است که ماکرو هنگام کنار هم قرار دادن لیست کلمات نادیده می گیرد. اگر میخواهید کلماتی را به لیست حذف اضافه کنید، به سادگی آنها را به رشته، بین [پرانتز مربع] اضافه کنید. همچنین مطمئن شوید که کلمات حذف با حروف کوچک باشند.
اگر به دلایلی دوست ندارید از ماکروها استفاده کنید، برنامه های دیگری وجود دارد که می توانید برای ایجاد تعداد کلمات استفاده کنید. به عنوان مثال، ویرایشگر متن NoteTab (نسخه "سبک" را می توان رایگان در https://www.notetab دانلود کرد. .com/) شامل یک ویژگی است که تعداد کلمات را فراهم می کند. تنها کاری که باید انجام دهید این است که کل سند خود را کپی کرده و آن را در NoteTab جایگذاری کنید. سپس در NoteTab، ابزارها | آمار متن | بیشتر را انتخاب کنید. تجزیه و تحلیل فراوانی کلمه را ارائه می دهد. ، از جمله درصد.