说说VBA中的面向对象
对象是 Visual Basic 的结构基础,在 Visual Basic 中进行的所有操作几乎都与修改对象有关。Microsoft Word 的任何元素,如文档、表格、段落、书签、域等,都可用 Visual Basic 中的对象来表示。
什么是对象和集合?
对象代表一个 Word 元素,如文档、段落、书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,一个集合对象中可包含文档中的所有书签对象。通过使用属性和方法,可以修改单独的的对象,也可修改整个的对象集合。
什么是属性?
属性是对象的一种特性或该对象行为的一个方面。例如,文档属性包含其名称、内容、保存状态以及是否启用修订。若要更改一个对象的特征,可以修改其属性值。
若要设置属性的值,可在对象的后面紧接一个句号、属性名称、一个等号及新的属性值。下列示例在名为“MyDoc.doc”的文档中启用修订。
Sub TrackChanges()
Documents("Sales.doc").TrackRevisions = True
End Sub
在本示例中,Documents 引用由打开的文档构成的集合,而“MyDoc.doc”标识集合中单独的文档。并设置该文档的 TrackRevisions 属性。
不能设置某些属性。属性的“帮助”主题中会标明可以设置该属性(可读写),或只能读取该属性(只读)。
通过返回对象的一个属性值,可以获取有关该对象的信息。下列示例返回活动文档的名称。
Sub GetDocumentName()
Dim strDocName As String
strDocName = ActiveDocument.Name
MsgBox strDocName
End Sub
在本示例中,ActiveDocument 引用 Word 活动窗口中的文档。该文档的名称赋给了 strDocName 变量。
说明
每个属性的“帮助”主题表明可以设置该属性(可读写),只能读取该属性(只读),或只能写入该属性(只写)。此外“Visual Basic 编辑器”中的“对象浏览器”在浏览窗口的底部显示所选属性的读写状态。
什么是方法?
方法是对象可以执行的动作。例如,只要文档可以打印,Document 对象就具有 PrintOut 方法。方法通常带有参数,以限定执行动作的方式。下列示例打印活动文档的前三页。
Sub PrintThreePages()
ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:="1-3"
End Sub
在大多数情况下,方法是动作,而属性是性质。使用方法将导致发生对象的某些事件,而使用属性则会返回对象的信息,或引起对象的某个性质的改变。
返回一个对象
可通过返回集合中单独的对象的方式来返回大多数对象。例如 Documents 集合包含打开的 Word 文档。可使用(位于 Word 对象结构顶层的)Application 对象的 Documents 属性返回 Documents 集合。
在访问集合之后,可以通过在括号中使用索引序号(与处理数组的方式相似)返回单独的对象。索引序号通常是一个数值或名称。详细内容,请参阅返回集合中的对象。
下列示例使用 Documents 属性访问 Documents 集合。索引序号用于返回 Documents 集合中的第一篇文档。然后将 Close 方法应用于 Document 对象,关闭 Documents 集合中的第一篇文档。
Sub CloseDocument()
Documents(1).Close
End Sub
下列示例使用名称(指定为一个字符串)来识别 Documents 集合中的 Document 对象。
Sub CloseSalesDoc()
Documents("Sales.doc").Close
End Sub
集合对象通常具有可用于修改整个对象集合的方法和属性。Documents 对象具有 Save 方法,可用于保存集合中的所有文档。下列示例通过使用 Save 方法保存所有打开的文档。
Sub SaveAllOpenDocuments()
Documents.Save
End Sub
Document 对象也可使用 Save 方法保存单独的文档。下列示例保存名为 Sales.doc 的文档。
Sub SaveSalesDoc()
Documents("Sales.doc").Save
End Sub
若要返回一个处于 Word 对象结构底层的对象,就必须使用可返回对象的属性和方法,“深入”到该对象。
若要查看该过程的执行,请打开“Visual Basic 编辑器”,在“视图”菜单上单击“对象浏览器”。单击左侧“类”列表中的 Application。然后单击右侧“成员”列表中的 ActiveDocument。“对象浏览器”底部会显示文字,表明 ActiveDocument 是只读的,该属性返回 Document 对象。然后单击“对象浏览器”底部的 Document,则会在“类”列表中自动选定 Document 对象,并将在“成员”列表中显示 Document 对象的成员。滚动成员列表,找到 Close,单击 Close 方法。“对象浏览器”窗口底部会显示文字,说明该方法的语法。有关该方法的详细内容,请按 F1 或单击“帮助”按钮,以跳转到 Close 方法的“帮助”主题。
根据这些信息可编写下列指令,以关闭活动文档。
Sub CloseDocSaveChanges()
ActiveDocument.Close SaveChanges:=wdSaveChanges
End Sub
下列示例将活动文档窗口最大化。
Sub MaximizeDocumentWindow()
ActiveDocument.ActiveWindow.WindowState = wdWindowStateMaximize
End Sub
ActiveWindow 属性返回一个 Window 对象,该对象代表活动窗口。将 WindowState 属性设为最大常量(wdWindowStateMaximize)。
下列示例新建一篇文档,并显示“另存为”对话框,这样即可为文档提供一个名称。
Sub CreateSaveNewDocument()
Documents.Add.Save
End Sub
Documents 属性返回 Documents 集合。Add 方法新建一篇文档,并返回一个 Document 对象。然后对 Document 对象应用 Save 方法。
如上所示,可以使用方法或属性来访问下层对象。也就是说,在对象结构中,将方法或属性应用于某个对象的上一级对象,可返回该下级对象。返回所需对象之后,就可以应用该对象的方法并控制其属性。要查看对象结构分层的情况,请参阅 Microsoft Word 对象。
说说VBA中的面向对象的更多相关文章
- VBA中四种自动运行的宏以及模块的含义
在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate, Auto_Deactivate. ...
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...
- 简单分析JavaScript中的面向对象
初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...
- 前端开发:面向对象与javascript中的面向对象实现(一)
前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“ ...
- Java语言中的面向对象特性总结
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
- VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别
在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10") VB的语法,使用参数的不一定是方法,也有可能是属性 ...
- 在VBA中新建工作簿
用程序计算数据,得到不同公司.不同项目的数据结果,最终还要将每个公司的数据结果放在各自的单独文件中.这就需要在vba中新建.保存excel文件.掌握几个东西就能很熟练了:1.要想保存在当前目录下,需要 ...
- 在VBA中调用excel函数
以前不太会用VBA时,都是在excel中使用函数来计算一些数据.毕竟函数不如代码,效率比较低.所以,就学着怎么在VBA中引用Excel函数.平时我用得比较多的函数就是countif和sumif函数.1 ...
- 在VBA中使用Windows API
VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个 ...
随机推荐
- sparkStreaming 与fafka直接方式 进行消费者偏移量的保存如redis 里面 避免代码改变与节点重启后的数据丢失与序列化问题
import java.util import kafka.common.TopicAndPartition import kafka.message.MessageAndMetadata impor ...
- web前端开发常用组件
web前端开发常用组件 1. 对话框(dialog):jbox(适合对话框等其它功能).colorbox(也很强大,可以弥补jbox图片轮播的落点), 这二者基本能搞定所有对话框的情况 2. ...
- jquery首页图片轮播
css样式 .bannerBox {position: relative;width: 100%;height: 348px;margin:0px auto;}.bannerBox .bannerLi ...
- 树莓派3B安装LEDE
本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...
- Arch pacman 常用命令
更新系统 pacman -Syu :对整个系统进行更新 如果你已经使用pacman -Sy将本地的包数据库与远程的仓库进行了同步,也可以只执行 pacman -Su 安装包 ➔ pacman -S 包 ...
- GlitchBot
问题 F: GlitchBot 时间限制: 1 Sec 内存限制: 128 MB 提交: 230 解决: 113 [提交] [状态] [命题人:admin] 题目描述 One of our del ...
- POJ3090 Visible Lattice Points
/* * POJ3090 Visible Lattice Points * 欧拉函数 */ #include<cstdio> using namespace std; int C,N; / ...
- 清晰的教你如何将 Maven 项目上传至 中央仓库以及版本更新
项目中总会依赖一些大牛的开源库,例如 Android 开发 通过以下方式就可以方便的引入库.那么如何将我们自己的库也能这样来使用呢?下面我们将详细的讲解每一步的过程: implementation ' ...
- 英语发音规则---I字母常见发音组合有哪些
英语发音规则---I字母常见发音组合有哪些 一.总结 一句话总结: I/y在开音节中发/aɪ/,例如:bite /baɪt/ n. 咬 I/y在闭音节中发 /ɪ/,例如:clinic /'klɪnɪk ...
- C# 获取CPU序列号、网卡MAC地址、硬盘序列号封装类,用于软件绑定电脑
using System.Management; namespace GLaLa { /// <summary> /// hardware_mac 的摘要说明. /// </summ ...