01Word VBA学习交流资料之一
更新时间:2024-06-07 03:23:01 阅读量: 综合文库 文档下载
Word VBA 学习交流资料之一
序
感 想:有感于国人的Word水平比较低,尤其是VBA这一块,本人想请大家一起学习VBA,在提高自身的能力同时帮助需要帮助的人。
感谢:绿叶的建群之功,也感谢you兄的热烈支持,更感谢大家的大力支持!
学前必备:Word VBA帮助(2003或别的都行,大体相当)(没有也没有关系,在这里,大多看到的就是复制自“帮助”的。)
可选工具:金山词霸(对E文不太懂的人,尤其重要) 语法工具:共享区的“VBA一串通”
学习方法:“不求甚解”(一开始,不太懂,没关系,坚持下去就懂了。)
学习步骤:看到例子时,复制到VBE编辑器中运行一次,看一下结果(最好按F8,一步一步地看)
必要指出:是“互学”,错误或不妥之处难免!因我也是一边看帮助,一边写。 开始之前:高唱国歌(最好能喊:自强不息!) ――――――――――――――― Start:
一、对象模型
打开Word VBA帮助,首先看到的是“Word的对象模型”(如下所示)
图表 1
知识点:知道Application对象(Word应该程序的总对象)、Doctuments对象(文档集对象)、Paragraphs对象(段落集)、Selection(选中区域)对象、Tables(表格)对象、Sections(节,即Word的第一节)对象、Headers(页眉)对象。
要求:只要知道大概(凝视10分钟)就行了,下面(还有以后)会详细说到这些的。
二、新增功能
(略)
原因:我们的初衷大多是从“零”开始,最基础的我们都不知道,何来“新增”啊?
但是,以后学到相关的知识时,会跳到这里,学一些新增的“对象”、“方法”、“事件”、“属性”等。
三、编程概念
对象是 Visual Basic 的结构基础,在 Visual Basic 中进行的所有操作几乎都与修改对象有关。Microsoft Word 的任何元素,如文档、表格、段落、书签、域等,都可用 Visual Basic 中的对象来表示。(不用怕,这些都是以为会反复提到的。) 什么是对象和集合?
对象代表一个 Word 元素,如文档、段落、书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,一个集合对象中可包含文档中
的所有书签对象。通过使用属性和方法,可以修改单独的的对象,也可修改整个的对象集合。
作者加:打比方是最容易理解的。那么就打个比方吧: 假如Windows是整个地球
那么Word(此时就是指Application)就是一个国家 常用的调用方法就是:
现在假设你就是中国北京海淀区仁和幼儿园的老师001,
现在要找到你,我们可以这样来找:中国?北京?海淀区?仁和幼儿园?老师001 但是,要注意,仅仅找出,不是我们的目的,我们的目的是改变他的某些方面。
例如:如果你要找到活动文档(就是你正在操作的文档,当他得到焦点或说处于最前面操作时)第二个段落的第一个字设为红色。则可这样操作:
Application.ActiveDocument.Paragraphs(2).Range.Characters(1).Font.Color = wdColorRed
相当于 中国. 北京. 海淀区. 仁和幼儿园. 老师001. 穿着. 颜色. = 红色 也可以这样来:(中国可以略去,我想没有人不知道北京是哪个国家的吧) 北京. 海淀区. 仁和幼儿园. 老师001. 穿着. 颜色. = 红色 所以,出来了这个:
ActiveDocument.Paragraphs(2).Range.Characters(1).Font.Color = wdColorRed
在Word 的VBA中,大多数对象都是通过Application来访问,但有几个可以直接访问:如activedocumnet、documents等,当然通过application对象也行,但无疑后者更简略。 怎么样,易懂吧?
不懂?没关系,慢慢来。
什么是属性?
属性是对象的一种特性或该对象行为的一个方面。例如,文档属性包含其名称、内容、保存状态以及是否启用修订。若要更改一个对象的特征,可以修改其属性值。
若要设置属性的值,可在对象的后面紧接一个句号、属性名称、一个等号及新的属性值。下列示例在名为“MyDoc.doc”的文档中启用修订。 Sub TrackChanges()
Documents(\End Sub
在本例中,Documents 引用由打开的文档(注意是对打开后文档的操作)构成的集合,而“MyDoc.doc”标识集合中单独的文档。并设置该文档的 TrackRevisions 属性。
不能设置某些属性。属性的“帮助”主题中会标明可以设置该属性(可读写),或只能读取该属性(只读)。
通过返回对象的一个属性值,可以获取有关该对象的信息。下列示例返回活动文档的名称。 Sub GetDocumentName()
Dim strDocName As String
strDocName = ActiveDocument.Name MsgBox strDocName End Sub
(这个例子输出的没有路径,只有名字.若带路径的话,把strDocName = ActiveDocument.Name改为:strDocName = ActiveDocument.Path & ActiveDocument.Name)
在本例中,ActiveDocument 引用 Word 活动窗口中的文档。该文档的名称赋给了
strDocName 变量。
说明:每个属性的“帮助”主题表明可以设置该属性(可读写),只能读取该属性(只读),或只能写入该属性(只写)。此外“Visual Basic 编辑器”中的“对象浏览器”在浏览窗口的底部显示所选属性的读写状态。 什么是方法?
方法是对象可以执行的动作。例如,只要文档可以打印,Document 对象就具有 PrintOut 方法。方法通常带有参数,以限定执行动作的方式。下列示例打印活动文档的前三页。 Sub PrintThreePages()
ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:=\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(\End Sub
'这个常用,让某个指定的文档关闭。
集合对象通常具有可用于修改整个对象集合的方法和属性。Documents 对象具有 Save 方法,可用于保存集合中的所有文档。下列示例通过使用 Save 方法保存所有打开的文档。 Sub SaveAllOpenDocuments() Documents.Save End Sub
'所有的文档保存,相当于按住Shift再点击文件下的全部保存命令。
Document 对象也可使用 Save 方法保存单独的文档。下列示例保存名为 Sales.doc 的文档。
Sub SaveSalesDoc()
Documents(\End Sub
'对指定的文档保存。
若要返回一个处于 Word 对象结构底层的对象,就必须使用可返回对象的属性和方法,“深入”到该对象。(这一句与我上面的例子(中国北京…)是一样的。)
若要查看该过程的执行,请打开“Visual Basic 编辑器”,在“视图”菜单上单击“对象浏览器”。单击左侧“类”列表中的 Application。然后单击右侧“成员”列表中的 ActiveDocument。“对象浏览器”底部会显示文字,表明 ActiveDocument 是只读的,该属性返回 Document 对象。然后单击“对象浏览器”底部的 Document,则会在“类”列表中自动选定 Document 对象,并将在“成员”列表中显示 Document 对象的成员。滚动成员列表,找到 Close,单击 Close 方法。“对象浏览器”窗口底部会显示文字,说明该方法的语法。有关该方法的详细内容,请按 F1 (作者注:不把F1磨平,VBA很难真正掌握^-^)或单击“帮助”按钮,以跳转到 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 对象。 获得有关对象、方法和属性的“帮助”信息
在熟悉 Word 对象模型之前,可以利用一些工具来深入了解对象结构。
自动成员列表。(重要)在“Visual Basic 编辑器”中,在对象后面键入句号 (.) 后,即显示可用的属性和方法的列表。例如,如果键入“Application.”,就会显示 Application 对象的方法和属性的下拉列表。
帮助。也可以使用“帮助”找到可应用于对象的属性和方法。“帮助”中的每个对象主题都包含一个“参阅”跳转,以显示该对象的属性和方法列表。在“对象浏览器”或某一模块中按 F1,可跳转到相应的“帮助”主题。
Microsoft Word 对象。该主题阐明在分级结构中 Word 对象的排列方式。在结构图中单击一个对象,可显示相应的“帮助”主题。
对象浏览器。“Visual Basic 编辑器”中的“对象浏览器”显示 Word 对象的成员(属性和方法)。
-----------------------------------------
实例:打开Word后,按Alt+F11,出现VBE窗口,
双击右边的Thisdocument(当然,放到底下的模块中任一个也行),输入如下内容: Sub autoexec()
Application.Caption = \我爱我家!\End Sub
这时,关闭Word,再打开Word。
你的标题就有“×××.doc—我爱我家!”了!
图表 2
当然,也可以进一步做成这样: Sub autoexec() Dim a
a = MsgBox(\我家我家\这是一个试验\ If a <> 6 Then
Application.Quit End If End Sub
'功能就是打开Word时,显示此对话框,如果点了“是”就不作处理即打开Word,否则,退出Quit。
也可以写成这样: Sub autoexec() Dim a
a = InputBox(\你的姓名\防君子,不防小人!\ If a <> \小小\ Application.Quit End If End Sub
'功能就是打开Word时,显示此对话框,如果输入的不是小小,就打不开。不信,你试试。
'同时,ipnutbox函数也来了。(这个函数下次贴上他的帮助,这次就不贴了,多了,大家记
不住的。)
其中就有了msgbox函数的用法。
(“不求甚解”:这个函数只要知道大体就行了。不必用心去记住这些繁杂的家伙,用到不会时,选中msgbox,按一个F1就看到了。) 参考以下:MsgBox 函数
在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。 语法
MsgBox(prompt[, buttons] [, title] [, helpfile, context]) MsgBox 函数的语法具有以下几个命名参数: 部分 描述
Prompt 必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
Buttons 可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0。
Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。
Helpfile 可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。 Context 可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。 设置值
buttons 参数有下列设置值: 常数 值 描述 vbOKOnly 0 只显示 OK 按钮。 VbOKCancel 1 显示 OK 及 Cancel 按钮。 VbAbortRetryIgnore 2 显示 Abort、Retry 及 Ignore 按钮。 VbYesNoCancel 3 显示 Yes、No 及 Cancel 按钮。 VbYesNo 4 显示 Yes 及 No 按钮。 VbRetryCancel 5 显示 Retry 及 Cancel 按钮。 VbCritical 16 显示 Critical Message 图标。 VbQuestion 32 显示 Warning Query 图标。 VbExclamation 48 显示 Warning Message 图标。 VbInformation 64 显示 Information Message 图标。 vbDefaultButton 1 0 第一个按钮是缺省值。 vbDefaultButton 2 256 第二个按钮是缺省值。 vbDefaultButton 3 512 第三个按钮是缺省值。 vbDefaultButton 4 768 第四个按钮是缺省值。
vbApplicationModal 0 应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工作。
vbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。
vbMsgBoxHelpButton 16384 将Help按钮添加到消息框
VbMsgBoxSetForeground 65536 指定消息框窗口作为前景窗口
vbMsgBoxRight 524288 文本为右对齐
vbMsgBoxRtlReading 1048576 指定文本应为在希伯来和阿拉伯语系统中的从右到左显示 第一组值 (0–5) 描述了对话框中显示的按钮的类型与数目;第二组值 (16, 32, 48, 64) 描述了图标的样式;第三组值 (0, 256, 512) 说明哪一个按钮是缺省值;而第四组值 (0, 4096) 则决定消息框的强制返回性。将这些数字相加以生成 buttons 参数值的时候,只能由每组值取用一个数字。
注意 这些常数都是 Visual Basic for Applications (VBA) 指定的。结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值。 返回值
常数 值 描述 vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No 说明
如果对话框显示 Cancel 按钮,则按下 ESC 键与单击 Cancel 按钮的效果相同。如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到其它按钮中有一个被单击之前,都不会返回任何值。
注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 MsgBox。为了省略某些位置参数,必须加入相应的逗号分界符。
总结:交流之一没有很实用(指对Word)的东东,但它是一个很好的开始。 有些地方不太明白,没关系,这仅仅是个开始。
欢迎大家交流了一下这一块的学习心得,也欢迎提出你的疑问,或你的想法,如果你还什么其他的要求也可以提出来,我们一起来进行探讨,共同提高。
免责声明:如果文档有代码或内容侵犯了你的权利,请告诉我,我马上删除,这是一个非盈非的学习,任何商业行为与本学习无关。你可以复制或传播“他”的全部或部分,但请把“免责声明”也加上,(最好把我们的名字与加上)谢谢了。
案例说明:有一些是本人自编的,但更多的则是来自网上网友(尤其是老大――守柔的),其中的案子,大多是随意编的,如有雷同,纯属巧合。如果你不同意你的代码出现在本学习资料中,请告诉我。谢谢各位网友,虽然你的大名不曾出现,但你的精神,我们去记住的。 关于微软:微软的帮助也有版权的,但我们是学习,应该不会有版权的事,有的话,马上删。 关于时间:主要利用周六、周日来完成学习,当然,平时要看,否则,刚看的东东又忘记了。 关于学时:用时一年,一至二周一次。(保证不低于20课)
关于教材:选择微软的自带帮助做为交流学习的主要资料是基于以下几点考虑的: 1. 因为它权威性最高,通用性最好;
2. 它一般不会有版权的事,因为我们是学习他,而是来盈利;
3. 看懂它后,大多的微软同类都是相通的,可以说“学了一个”=“学了一类”; 4. 他有很好的结构,有内涵、也有外延;
5. 如果在学习过程中我们某些人坚持不下来,但其他人仍然完全可以继续学习,不会受到
影响,这也是最重要的一点。
6. 还有一点就是如果长时间不用后,大多会忘记,但帮助始终在。用时,打开帮助,你会
看到很多熟练的身影,很容易又找回当初的感觉。
技术指导:守柔
校对、排版:youyou300 撰稿:konggs
正在阅读:
01Word VBA学习交流资料之一06-07
2014年经纪人业务成功的十步骤每日一讲(11月23日)05-06
离骚情景默写12-08
1.01-1工作保证计划(第一阶段)03-17
高速公路运营管理概念02-26
AD负载均衡参数:AD-160006-12
流变学重点难点指导11-28
HND 会计考试outcome311-19
川大《隧道工程1641》18春在线作业211-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 学习交流
- 之一
- 01Word
- 资料
- VBA
- 2008技术竞赛试题(中短波专业组)
- 食品药品监督管理局实习报告
- “精心组织公文写作,提升宣传业务水平”活动简报
- 常州市酒店市场研究报告
- 单选题
- 茯苓菌种等四个标准编制说明
- 2011-12春季保卫科计划
- 2015年专利代理实务考试试卷及解析
- 品牌营销策划书
- Labview毕业论文毕业论文中英文资料外文翻译文献
- 一体化机房联网集中监控解决方案 - 图文
- 共享经济模式中的个人观念问题研究
- 2017-2018学年高中英语必修3全套全册精品导学案
- 2015山东省会计学原理考试答题技巧
- 创业实训实岗工作任务册2011
- 理论沙龙活动策划案
- 唐山三友热电联产堆取料斗轮机技术协议(终)
- 家长如何看待绘本
- 《竹林深处人家》教学设计
- 生命的意义这样诠释