vba统计Word文档字数页数等信息方法探讨.docx

上传人:b****3 文档编号:683118 上传时间:2022-10-12 格式:DOCX 页数:12 大小:202.57KB
下载 相关 举报
vba统计Word文档字数页数等信息方法探讨.docx_第1页
第1页 / 共12页
vba统计Word文档字数页数等信息方法探讨.docx_第2页
第2页 / 共12页
vba统计Word文档字数页数等信息方法探讨.docx_第3页
第3页 / 共12页
vba统计Word文档字数页数等信息方法探讨.docx_第4页
第4页 / 共12页
vba统计Word文档字数页数等信息方法探讨.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

vba统计Word文档字数页数等信息方法探讨.docx

《vba统计Word文档字数页数等信息方法探讨.docx》由会员分享,可在线阅读,更多相关《vba统计Word文档字数页数等信息方法探讨.docx(12页珍藏版)》请在冰豆网上搜索。

vba统计Word文档字数页数等信息方法探讨.docx

vba统计Word文档字数页数等信息方法探讨

VBA统计Word字数、页数方法探讨

我们在日常工作若需要文档的字数和页数,或是VBA编程处理文档时需要用的文档的字数或页数作参数。

那么如何获得一个文档的字数和页数,VBA有多种方法获得文档的字数和页数,那么具体如何获得字数和页数?

获的数字到底代表了什么意义?

与我们平时理解除的文档字数和页数有什么异同?

相信你看完本文后,应该就明白了。

1.使用Document.BuiltInDocumentProperties方法统计字数

1.1第一种方法的实例1及结论

我们先来看一个例子:

如要统计一篇活动word文档的字数,可以在VBE代码窗口中输入以下代码:

PublicSubgetword()

'显示当前文档的字数

MsgBox"当前文档的的总字数为:

"&ActiveDocument.BuiltInDocumentProperties(wdPropertyWords)

EndSub

1、在代码窗口中输入上述代码,如图1-1所示。

图1-1

2、点运行按钮,运行结果如下图1-2所示。

3、对此统计的数字我进行了多次测试,特作如下说明:

(1)这里统计的字数是指汉字的字数+标点符号+加英文的单词数,英文的单词不区分大小写和正角性,只要有空格分开的就算两个字,如:

Seeto、see,to、see.to、wdStatisticCharacters都是算一个字,但Seeto就是两个字,而see,to则算3个字。

图1-2程序运行结果

(2)空格再多都不算作字,如“黄山村夫”和“黄山村夫”都是算4个字。

(3)中文的引号只有配对后才能算一个字,否则不算。

(4)西文的标点符号与西文相连时不算字,但与中文相连时就算一个字,如:

A,或a.都是算一个字,而“我,”或“我.”都是算2个字。

1.2第一种方法的实例2及结论

我们来看实例2,利用VBA的ActiveDocument对象的BuiltInDocumentProperties,统计一篇活动word文档的总页数,可以在VBE代码窗口中输入以下代码:

PublicSubgetpagenumbers()

'显示当前文档的页数

MsgBox"当前文档的总页数为:

"&ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)

EndSub

1、在代码窗口中输入上述代码,如图1-3所示。

图1-3

2、点运行按钮,运行结果如下图1-4所示。

图1-4程序运行结果

3、从上面的结果可以看出,统计的结果与我们平时的理解是一致的。

1.3扩展知识

这种方法适用于Document对象和Template对象。

返回一个DocumentProperties集合,该集合代表了指定文档的所有内置的文档属性。

这两个对象可使用的参数有:

  wdPropertyAppName应用程序名。

  wdPropertyAuthor作者。

  wdPropertyBytes字节数。

  wdPropertyCategory类别。

  wdPropertyCharacters字符数。

  wdPropertyCharsWSpaces字符数(计空格)。

  wdPropertyComments批注。

  wdPropertyCompany公司。

  wdPropertyKeywords关键词。

  wdPropertyLastAuthor最近一个作者。

  wdPropertyLines行数。

  wdPropertyManager经理。

  wdPropertyNotes注释。

  wdPropertyPages页数。

  wdPropertyParas段数。

  wdPropertyRevision修订次数。

  wdPropertySecurity安全性。

  wdPropertySubject主题。

  wdPropertyTemplate模板。

  wdPropertyTimeCreated创建时间。

  wdPropertyTimeLastPrinted上次打印时间。

  wdPropertyTimeLastSaved上次保存时间。

  wdPropertyTitle标题。

  wdPropertyVBATotalEdit编辑时间总计。

  wdPropertyWords字数。

 

2.使用ActiveDocument.ComputeStatistics方法统计字数和页数

2.1第二种方法的实例1及结论

同样我们也可以采用ActiveDocument的ComputeStatistics方法来获得文档的字数,包括尾注和脚注的字数。

1、在代码窗口中输入下述代码,如图2-1所示。

PublicSubgetwords2()

'显示当前文档的字数,包括尾注和脚注的字数

DimWORDnumberAsInteger

WORDnumber=ActiveDocument.ComputeStatistics(Statistic:

=wdStatisticWords,IncludeFootnotesAndEndnotes:

=True)

MsgBox"当前文档的总字数(含尾注和脚注)为:

"&WORDnumber

EndSub

图2-1

2、点运行按钮,程序运行结果如下图2-2所示。

图2-2程序运行结果

3、用这种方法统计字数结果的含义与第一种方法相同

2.2第二种方法的实例2及结论

同样我们也可以采用ActiveDocument的ComputeStatistics方法来获得文档的页数。

1、在代码窗口中输入下述代码,如图2-3所示。

PublicSubgetpagenuber2()

'显示当前文档的页数

DimWORDnumberAsInteger

PageNumber=ActiveDocument.ComputeStatistics(wdStatisticPages)

MsgBox"当前文档的总页数为:

"&PageNumber

EndSub

图2-3

2、点运行按钮,程序运行结果如下图2-4所示。

图2-4程序运行结果

3、用这种方法统计页数结果与第一种方法相同

2.3扩展知识

用上面的方法还可以获得下面这些参数:

 

  wdStatisticCharacters字符数。

  wdStatisticCharactersWithSpaces字符数(计空格)。

  wdStatisticFarEastCharacters中文字符和朝鲜文。

  wdStatisticLines行数。

  wdStatisticPages页数。

  wdStatisticParagraphs段数。

  wdStatisticWords字数。

  使用如下:

3.应用于Range对象的ComputeStatistics方法来获得文档的字数和页数。

3.1第三种方法的实例1及结论

我们还可以用Range对象的ComputeStatistics方法来获得文档的总字数。

1、在代码窗口中输入下述代码,如图3-1所示。

ublicSubgetwords3()

'显示指定文档的字数

DimwordCountAsInteger

DimmyRangeAsRange

SetmyRange=Documents("测试文档.docx").Range

wordCount=myRange.ComputeStatistics(Statistic:

=wdStatisticWords)

MsgBox"这是“测试文档”的总字数:

"&wordCount&"个字。

"

EndSub

图3-1

2、点运行按钮,程序运行结果如下图3-2所示。

图3-2程序运行结果

3、由于在这种方法中,我们使用了Range对象,大大提高的灵活性。

Range对象是百变袋子,什么都能装。

大到整个文档,小至一个字。

用了Range对象,我们可以对整体个文档、单个节、单个段落进行字数的统计。

3.2第三种方法的实例2及结论

同样我们也可以采用Range的ComputeStatistics方法来获得文档的页数。

1、在代码窗口中输入下述代码,如图3-3所示。

PublicSubgetpagenumber3()

'显示指定文档的页数

DimPageNumberAsInteger

DimmyRangeAsRange

SetmyRange=Documents("测试文档.docx").Range

PageNumber=myRange.ComputeStatistics(Statistic:

=wdStatisticPages)

MsgBox"“测试文档.docx”总共有:

"&PageNumber&"页。

"

EndSub

图3-3

2、点运行按钮,程序运行结果如下图3-4所示。

图3-4程序运行结果

3、用这种方法统计页数结果与第一种方法相同

3.3第三种方法的实例3及结论

我们可以采用Range的ComputeStatistics方法来获得文档第二段的字数。

1、在代码窗口中输入下述代码,如图3-5所示。

PublicSubgetwords4()

'显示指定文档指定段落的字数

DimwordCountAsInteger

DimmyRangeAsRange

SetmyRange=Documents("测试文档.docx").Paragraphs

(2).Range

wordCount=myRange.ComputeStatistics(Statistic:

=wdStatisticWords)

MsgBox"这是“测试文档”第二段的总字数:

"&wordCount&"个字。

"

EndSub

运行按钮

图3-5

2、点运行按钮,程序运行结果如下图3-6所示。

图3-6程序运行结果

  

3、若是要统计活动文档的字数也可以写成

ActiveDocument.Range.ComputeStatistics(wdStatisticWords)

4.利用ActiveWindow.Panes

(1).Pages.Count属性来获得页数

4.1第四种方法的实例1及结论

我们可以采用ActiveWindow.Panes

(1).Pages.Count属性来获得文档的页数。

1、在代码窗口中输入下述代码,如图4-1所示。

PublicSubgetpagenumber4()

'打开当前目录下面的测试文档word文档并获取文档的总面数

Documents.OpenFileName:

=ActiveDocument.Path&"\测试文档.docx"'在当前目录下打开“测试文档.docx”

'统计页数

MsgBox"测试文档总共:

"&Documents("测试文档.docx").ActiveWindow.Panes

(1).Pages.Count&"页。

"

Documents("测试文档.docx").CloseFalse'关闭指定文档且不保存

EndSub

运行按钮

图4-1

2、点运行按钮,程序运行结果如下图4-2所示。

图4-2程序运行结果

4.2直接使用Count属

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1