发新话题
打印

打造Word高级字数统计功能

打造Word高级字数统计功能


您正在看的Word教程是:打造Word高级字数统计功能。  Word本身提供了强大的字数统计功能。以Word XP为例,选择菜单“工具”→“字数统计”,Word会显示出页数、字数、段落数、行数等信息,足以满足大多数用户的需要。尽管如此,有时候还是不免出现鞭长莫及的情形。 8 `4 t- h% V- O
, Y4 H7 A: @5 P$ V% K4 b0 c9 m
一、单个词语的出现次数 5 A, |8 L4 _, g! c$ C4 d; J" U4 ?
! X2 _) [9 J+ R6 \( ~9 E5 @
  有一次一位朋友问我:Word能不能统计出特定关键词(例如某个人的姓名)的出现次数?我只能告诉他Word本身不直接支持这方面的文档分析功能。但是,我们可以另辟蹊径,用“查找/替换”功能得到某个词语的出现次数。步骤如下: $ E, j4 o: [" [5 _- H8 B5 \

  N9 ]& O9 T0 K3 w8 V' [) }& j' b⑴ 按Ctrl H显示出“查找和替换”对话框的“替换”页。 8 H( ]; o& _/ z; j" f$ }* F
- q$ k8 o# Z. v, S
⑵ 在“查找内容”栏,输入要统计其出现次数的词语。
# `1 u& m4 t& ?  o+ S1 d' S  p* X- A% D
⑶ 在“替换为”栏,输入“^&;amp;”,表示要替换的内容就是查找的内容。这样,执行替换操作后文档的内容实际上不会改变。
4 g" z. o5 e" T( r2 Q* c" X: ?) r; r+ y* r. V8 P
⑷ 点击“全部替换”按钮。
. P7 t8 T. L$ f' t3 E! m
/ o; @+ f/ p; j3 A& n. S⑸ Word执行替换,然后显示出有多少个词语被替换,如图一。这个数字就是该词语在文档中出现的次数。
( c7 G: [8 e8 k0 w2 C
# R" }  a, D: Z2 ~% X8 j% z! {% p2 a% s6 E" ?
& M+ V6 q, @0 ^1 U% R

  ]. Y- }$ q, L+ `
/ r1 @/ @/ y) z4 O& P, @图一 # A; F, s% o# T0 b
. O3 g& N0 x* M9 r# e3 H
  如果只是偶尔要了解一二个词语的出现次数,上面的办法足以应付。但是,如果经常要进行这类统计,最好用一个Word宏简化操作。下面的Word宏FindWords首先提示用户要统计的单词,然后显示出该单词在文档中出现的次数;只要用户不点击“取消”按钮(或在不输入单词的情况下点击“确定”按钮),它将一直重复这个过程。
% X6 X0 ]$ I5 K4 r
0 Z  i, E" x) j, c9 X; S- cSub FindWords ' X  t! |2 H0 _" E" g7 U8 [- P
) \& ]* u4 |2 R
Dim sResponse As String '要统计的单词 0 b, x- {5 V3 d
$ I) ^0 q. W/ I9 w
Dim iCount As Integer '出现次数 1 f9 U2 B7 s) w' y7 ]
& ?# l- ?9 ^* V& C; q

4 v% E/ u* D3 o- S8 H  p'反复询问要统计的单词,直至用户点击“取消”按钮
9 U9 b/ i1 _# F- \0 Y
2 I9 e3 Z7 X+ n' kDo $ n6 C, U+ C: E  ?' V: t; g" s

! z( T# I( m" Q% n/ r7 j4 A' 获得想要统计其出现次数的单词 7 o( m* A' n( [. e! z; W4 ^
" _+ S- k! _( r' p( f' n( j4 V
sResponse = InputBoxPrompt:="你想要统计什么单词?", _ 1 U# j7 s: i% l% y/ ?  L* K

+ p6 d5 y: r7 O6 y$ y/ t$ BTitle:="统计单词出现次数", Default:=""
5 \& F1 }: F$ F$ v( K5 l) R! E
$ v$ X5 z0 {, i. _) X4 A; X* mIf sResponse > "" Then ) i1 c- D' P3 T: r  |

4 }! `& [+ I' u, s( c- ^, O1 `' 每次统计之前,先将计数器清零
! w* @# E, N+ M9 @# Y, n6 _% ]2 y) x; O
* r7 }- D( m4 C) t. m/ ~, }iCount = 0 4 i4 [! n, R- u
; k9 u8 o8 Z. X' s. u8 _
Application.ScreenUpdating = False
+ Y3 K! ?- B6 o' Z+ s. I
: C6 x6 f" i! u4 H7 C2 ^; C" SWith Selection 1 U# M" Z8 l* B8 l! z% U

' ~9 i2 I( z5 @' L8 L- g.HomeKey Unit:=wdStory
9 g* }, O9 l0 a  @5 K0 n" u9 ?$ {' m' |% Z2 |5 }3 D. O: @! }/ z/ R, x
With .Find
: V% }* P; @( e) v, K6 e7 [( P' e" Z& k' P  D+ {2 ^4 R
.ClearFormatting , Z% H; P" H) _7 U
9 \; ^! m5 D8 G  m2 D" }
.Text = sResponse
0 r/ `' @- N3 c% j' W+ m, d' U0 \/ Z$ r
' 扫描整个文档,统计指定单词的出现次数 * G# \& D; I% ]# t3 e
, T0 `+ x2 P9 a- M2 ]7 u4 _, y5 O' j
Do While .Execute
- y4 O9 U9 X! X# `: ~, a/ ]5 I- [) Z) [2 o( `& h6 H1 b! n0 I
iCount = iCount   1 # B3 T6 U* ]. T, Q4 B
/ ?; n, C! n% \
Selection.MoveRight
* n) z  A8 l% M7 d
7 J0 o2 E+ A" O% g9 A2 _8 ZLoop
( Q; `0 w9 n# e3 y; P; \, q. _- R0 Y( }( ^- L
End With 9 l: ?: I" W3 S; g

; p4 M9 [1 c0 \% ~$ g* O1 ]' 显示出统计结果 " a1 }; g6 ^+ o+ \

" n% ?. N$ K% b/ mMsgBox "单词“" &;amp; sResponse &;amp; "”" &;amp; " 共出现 " &;amp; iCount &;amp; " 次" 7 L7 M  t9 V6 ~/ a  v

  e% `- H, H' n4 J& w1 d% sEnd With - c* @5 Z" w! D! |# M7 Q
* q; q( Z& c: y4 r  u2 N3 ^
Application.ScreenUpdating = True
/ b4 N' c8 H  H: [) H
3 t' j4 A  q! ZEnd If 5 [! Z2 j! \2 \8 x+ |9 \
7 ]3 m5 L0 p1 K! N+ u
Loop While sResponse <> "" / N$ b& X# t3 m5 M9 u9 i3 f( X

3 P% V* {# j) jEnd Sub 3 k0 x7 |' y8 A  z. q9 U  ]

2 H' q4 ^' {3 G" l  创建该Word宏的步骤是: ( o( r' b( l1 }
9 g3 V& O- @0 C1 G3 T$ e0 L/ O- {
◆ 选择菜单“工具”→“宏”→“宏”,在“宏名”栏输入FindWords,点击“创建”按钮,Word打开Visual Basic宏编辑器。 0 n/ a* ?( D2 b2 T% p6 {
. g0 E7 [$ s7 ~; s1 p9 E- G4 ^6 g, q
◆ 在宏编辑器中输入FindWords宏的代码,如图二(图中只显示出一部分代码)。 . G' K5 h$ a5 t9 p$ o( a
0 J/ ~. k: [$ Q5 J

! z* ^8 q, |3 W- s
2 x$ c; S; S& U  Y) }
9 R" R. p' C9 ?  z( o
9 @6 S) D7 Q3 ?" P, M) Q! W图二
/ f( P$ C9 J/ u1 P( p7 \/ B; z2 x: m! i1 G* g
◆ 点击宏编辑器工具栏上的“保存”按钮,再选择菜单“文件”→“关闭并返回到Microsoft Word”,返回Word。
. l8 Q8 I7 U( Y3 n
$ h8 k  g4 x  K. Q+ ?+ F5 L5 A6 \  以后,只要运行FindWords宏,FindWords宏就会提示要统计的单词(图三),然后报告该单词的出现次数(图四)。为方便计,你可以为这个宏定义快捷键和工具栏图标,操作步骤如下:
6 W" ]% ?+ q9 _$ r! U+ n) W% c# u) i

9 j/ `! q( J. X: J, ~" w
* F- P! Y7 J) C- y+ i2 Q/ i+ L+ I9 T# \: j* F% r

& S4 d5 W! e$ w9 d! c0 j  W  X- s2 B图三* ^0 I9 F; p( `/ B+ d

! n6 j# [( Q; c7 z
! G' |4 p* B6 {) P; \' u* Y6 K- ]; d: m, D8 J  a

' F% @3 G7 T* v0 c5 f3 f图四
" e5 R: _6 G3 \6 ]" L) z$ P( N) ^4 E2 Z/ Q; i
◆ 选择Word菜单“工具”→“自定义”。
. Q2 t+ l0 z5 m# p1 W( h0 N$ v  D& m9 ~9 u
◆ 在对话框中选择“命令”选项卡。
& |) \' x0 T) E8 Q/ w% I/ h/ T4 r6 e- {+ D$ ?2 H! ~
◆ 在“类别”列表中选择“宏”,在“命令”列表中选择FindWords宏,如图五所示。
) P! D) u/ S( P3 g. `1 Z
) H, @0 \6 T* h( q6 V( F) \6 g& R2 y. _

5 J4 t3 Z8 d( E) }
6 b" s! C( |' `5 f+ @, R: D; j0 Q# \9 \" c! G
图五
7 F- R# w, O0 V" S: ~- L8 H' B: E# |/ x: L4 g. r8 c
◆ 按住鼠标左键,将FindWords拖到工具栏的适当位置,放开鼠标键。 - H, T( E0 x9 X$ E0 Y) i# E2 f% I

5 _* z" y% ~* M1 v0 Y◆ 工具栏上出现了代表FindWords的按钮。右击这个按钮,为它指定适当的名称和图标,如图六。 . w" ]4 b" o4 K- E/ H
5 K% f3 Y( @0 P% k; f
! Y; ^; w0 m- [7 M* y

6 S& ]( f4 \- `8 k0 N
' f/ h  g; S7 O3 R7 A( ]0 o1 U9 \* V# Q. n. F
图六" l) g9 N0 p) S2 [4 t: w9 v
8 y& o% J; \, v, x* Q6 C, ^
◆ 关闭“自定义”对话框。 & Q- d5 g9 p: M, _) d# W

' ~- `+ I  Z5 E- T  如果要为FindWords宏定义快捷键,只需在图五的“自定义”对话框中点击“键盘”,然后根据提示操作即可。 - A- [' M) U& O& O& p9 q! k

6 S1 d2 g0 W# j+ j5 V1 m二、分析用词习惯
  W# d- `4 _/ S
, N8 V- h3 a2 e3 w* M0 B3 y5 g" R  不同的人有不同的写作习惯,我曾经看到一则新闻,具体情节已经忘记,大致如此:有一本小说S,因年代久远,人们无法判断它到底是作家A写的还是B写的。于是科学家想了一个办法:首先分析A和B各自的写作习惯,然后将它与S的写作风格对比,以此判断S的真正作者。所谓分析A和B的写作习惯,就是针对肯定是A或B写的小说,分析其各个单词的出现频度,只要统计资料足够多,每个人的作品会呈现出各自鲜明的特征。 : M8 ]5 ^# W, m+ a4 Y

, ~% l. y/ ~% {6 K9 u5 ^" v* r  其实在Word中,我们也可以方便地实现统计各个单词出现频度的功能,如WordFrequency宏所示。
: i- s9 @# e' M+ Y" E本新闻共3页,当前在第1页  1  2  3



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题