word 代码_Word文档的信息统计,VBA代码一样可以实现

大家好,我们今日继续讲解VBA代码解决方案的第146讲内容:如何实现Word文档的信息统计。熟悉Word的朋友都清楚,对于WORD文档的信息统计,是一个标准的功能,打开一个WORD文档,当选择一段文字后,在下面的信息栏中就会提示选中的字数、段落数等信息。那么这个功能是如何实现的的呢?我们利用VBA可否也可以实现类似的功能呢?今日的内容就当大家实现这个功能。当然,目的仍是让大家熟悉在WORD中如何利用循环语句。

说句实在话,对于一个OFFICE软件,无论是excel还是word,在微软提供的功能中如果想实现循环计算只有两个办法,一是利用数组,二是利用迭代运算。但这两种方法都有自己的局限性,比如迭代,要受到迭代次数的影响,不同的迭代次数运行的结果会有不同,而数组本身就是EXCEL的一个难点,说句夸张的话,在讲数组的文章中,或许你只有在我的这个平台可以能看到系统的讲解,如何的定义,如何的利用,在讲VBA之前我利用了大量的时间给大家讲EXCEL函数及各种高端的应用,如果感兴趣的朋友可以回过头来看看我之前的文章。如果我们理解了VBA这个知识点完全可以用VBA来解决,而且,解决的更好。

今日讲的实例是利用循环统计出所选文本中的句子数量和结尾的标点符号。

Sub mynzsen()

Dim s As Range, SenCount As Integer, MyString As String

Dim EndChar As String, K As Integer

K = 0

With Selection

If .Type = wdNoSelection Then Exit Sub

SenCount = .Sentences.Count '取得所选内容的句子数

For Each s In .Sentences '在句子中循环

K = K + 1

'如果句子中的最后一个字符为段落标记则EndChar为段落标记的前一个字符

If s.Characters(s.Characters.Count) = Chr(13) Then

EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count - 1) & "]"

Else

EndChar = "[第" & K & "句结束标点为 " & s.Characters(s.Characters.Count) & "]"

End If

'以空格为分隔符,将结束标点在变量中累加

MyString = MyString & " " & EndChar

Next

End With

MsgBox "所选内容句子数:" & SenCount & vbCrLf & "结束标点分别为:" & MyString

End Sub

代码截图:

62199c38909c6052521dbc6f7dde9cb6.png

由于在程序中大部分我都做了注释,只是再简单的讲解一下:

上面的程序中需要注意的是对于有选择和没有选择的判断,这里是根据Selection.Type 的值来进行判断的,对于这个值可以有很多种类型,如下:

wdNoSelection 0No selection.

wdSelectionBlock6A block selection.

wdSelectionColumn4A column selection.

wdSelectionFrame3A frame selection.

wdSelectionInlineShape7An inline shape selection.

wdSelectionIP1An inline paragraph selection.

wdSelectionNormal2A normal or user-defined selection.

wdSelectionRow5A row selection.

wdSelectionShape8A shape selection.

这里我用的是wdNoSelection也可以用wdSelectionIP,也可以表示没有任何的选中结果,对于这个词语的解释,后者wdSelectionIP的对应英文解释An inline paragraph selection。目前我还没有看到有那种翻译是较为合适的,好在我们的目的是应用,记住就可以了。

下面我们看程序的运行:

4c4fe00d8f1b6a623130702fdda93eac.png

在上述的文档中选择了部分文字,运行结果:

58a38d7c7258c4fe1e3d7c2ed6fd340b.png

今日内容回向:

1 WORD中的循环,你是否明白呢?

2 如何请计算出选择的句子数呢?

相关资源:VBA操作Word
已标记关键词 清除标记
在阅读本书之前,作者先阐述一下 VBA(Visual Basic for Applications)的作用原理: VBA 是捆绑在 Appliation 对象(此处则指 Word.Application,简称 Word)的一个后台程 序;VBE(Visual Basic Editor)是指编辑 VBA 的一个程序/编辑器(在 WORD 中按下 ALT+F11 即可进入),从对象角度看,有 Application.VBE(即 VBE 是附属于 Application 对象的一个对象),从工程角度看,有 ActiveDocument.VBProject(当前文档VBA 工 程)。我们知道,Microsoft 系统产品是以 Windows(广义,非单指 WIN 系统)著称, 是泛指以窗口型的可视化程序,用户与电脑通过程序进行数据交换和人机对话,用户所 有的前台(直接用鼠标、键盘等)和后台(编程)操作,都是面向对象的操作。因此正 确理解对象的概念、集合、属性、方法是非常必要的。从大范围讲,Application(应用 程序)是一个大对象(最顶层),任何允许用户操作的地方都存在指定的对象,比如常见 的标题栏名称(Application.Caption),最大化最小化按钮(Application.WindowState), 所有的菜单、工具栏、命令等等都是一个对象,用户最常用的是 Selection 对象,即选 中的内容,Word 中是作为 Selection 对象来处理的,如选中的文字,选中的表格,选中 的图形等等,大到 Application 对象(最顶层),小到一个字符(Character)甚至一个光 标,对于 VBA 而言,都是一个对象。根据对象分工不同,对象还有父对象、子对象等 等。我们通常编程,可以以不同的方式访问对象、修改对象的属性或者指定对象进行特 定的动作等。在 WORD 中,最重要的对象是 Selection 对象和 Range 对象,相当于 Excel 中的 ActiveCell 和 Range 对象。
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页