




免费预览已结束,剩余24页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
从零开始 步入从零开始 步入 WordWord 宏编程的世界 第一讲 宏编程的世界 第一讲 工作中 经常看到许多朋友在使用 Office 时已经非常地熟练 但仍不敢去接触 Office 的 VBA 编程 在 网上 Office 的 VBA 编程论坛中 同样看到有朋友在其中流连了相当长的时间 但仍然不得其门而入 问一 下这两类朋友 前者觉得编程是一件很 高深 的事 自己恐怕学不会 后者为了提高自己的工作效率 虽然 很想学 但自己一点编程的基础也没有 照着网上高手们的帖子做 反而越学越糊涂 当我问第二类朋友为 什么不多看看 VBA 的帮助文件时 看不大懂 就像有语言障碍一样 他这样回答我 对于第一类朋友 我想说 不要被自己想象出来的 困难 吓倒 如果您没有亲自尝试过 怎么知道编程 会很 高深 又怎么知道自己学不会 而第二类朋友如果能静下心来把基础知识补一补 相信您的问题也会 迎刃而解 那么 就让我们从最基础的知识开始 步入 Office 宏编程的世界吧 文前的几点说明 1 虽说本文用到的程序在 office2007 与 office2010 中同样可以正常运行 但考虑到目前单位办公用机的 实际情况 本文所有的实例主要还是面向 Office2003 的用户 2 为了便于各位读者理清思路 避免文章涉及面太广 本文主要以 office2003 中最常用的 Word 为主进 行讲述 有与其它 Office 套件相关联的地方 将单独说明 3 为避免学习过程中的枯燥乏味 本文没有像传统编程教材那样以理论知识为线索展开 而是将不同 的知识点放到了几个不同的实例之中进行讲述 所以 把每个实例 做 一遍 细心体会每个实例的知识点 将有助于您快速掌握 VBA 的编程技术 单纯地 看 则无助于您的学习 本文的宗旨是 完全面向初学者 或许您还能以此为契机叩开奔向 VB6 0 或 VB NET 的大门 说不 定您还能编出一 两个病毒玩玩儿 当然仅限于玩玩儿 千万别做出什么傻事来 好了 下面就开始我们 Word 的 VBA 编程之旅吧 愿您旅途愉快 实例一 你好 世界 知识点 1 熟悉 VBE 的编程界面 2 什么是 VB VBE VBA 3 什么是过程 工程 不要以为这些知识点有多难 让我们一步一步地来 启动 Word 指向工具 宏 VB 编辑器 打开 VB 编辑器的界面 如图 1 1 VB 编辑器 就是 VBE VBE 是 Visual Basic Editing 的缩写 我们在 VBE 编程环境中所使用的编程语言 就是 VBA 即 Visual Basic for Applications 的缩写 VBA 语言是我们所熟知的 VB 编程语言的一个子集 VBE 编辑器界面的菜单栏与工具栏就不必说了 界面左面中间部份是 工程资源管理器 所在的 工程资源 管理区 每一篇 Word 文档中所编写的程序 Word 都把它看成为一个 工程 工程资源管理器 就是对这些 工程进行管理的地方 界面左下方是 对像属性设置区 我们可以对自己要用到的对像的属性进行设置 第 四个实例中 我们将对 属性设置 进行详细解说 现在大家不必管它 界面右面大面积空白的区域是 代码 编辑区 我们编写的所有代码都放在这儿 如果看不到这个空白区域 则打开 插入 菜单 插入一个 模块 就行了 如果 工程资源管理器 已有 模块 则双击模块名 就能打开 代码编辑区 好 现在我们就在这个 VBE 环境下 利用 VBA 语言 来编写我们的第一个工程 即程序 请在 代码编辑区 中输入如下的代码 sub A msgbox 你好 世界 end sub 注意 代码 msgbox 你好 世界 一句中的引号与括号为英文标点 点击工具栏上的黑色三角形的 播 放键 或按下 F5 键运行这个程序 您将看到一个弹出的消息框 如图 1 2 代码解说 sub 是 VB 编程中申明一个过程的语句 sub A 申明了一个名叫 A 的过程 A 后面跟了一个括号 它 的作用现在大家暂时不用管它 整段程序结尾的 end sub 语句 表示过程 A 在此结束 每一个程序都必需有 开始与结束的标志 所以 从 Sub A 到 End sub 就构成了一个完整的 过程 Msgbox 是一个函数 它的作用是弹出一个消息框来 它后面括号中的内容就是要在弹出的消息框中显 示的内容 该函数在我们的第二个实例中 将做详细讲解 本实例的知识扩展 1 打开 Word 指向工具 宏 再点击 宏 按钮 打开 宏名 对话框 这时 我们就可以看到刚才我 们编写的名叫 A 的宏 选中 A 点击 运行 按钮 就能运行该宏 2 同上操作顺序 打开 宏名 对话框 在 宏名 中新输入一个名字 B 注意没有引号 再点击 创建 按钮 这时就会打开 VBE 编辑器 并已为我们生成了一个名为 B 的空过程 该过程中的绿色文字 就是这 个宏的注释 如果我们要对自己所编写的代码进行注释 可在注释语句的前面加上一个英文状态下的撇号 该注释的语言是不会被程序运行的 用这个方法创建过程 可以避免手工输入时疏忽掉程序结尾的 End sub 好了 实例一到此结束 回顾一下课前的知识点 都掌握了吗 如果觉得没有问题了 就准备进入我们 的第二个实例吧 从零开始 步入从零开始 步入 WordWord 宏编程的世界 第二讲 宏编程的世界 第二讲 实例二 基本的对话框函数 知识点 1 认识消息框函数 MxgBox 与输入框函数 InputBox 2 什么是常量 什么是变量 申明变量的方法是什么 3 用 符号连接字符串 想想我们平时与他人谈话时的形式 你提问 他回答 或是他提问 你回答 我们所编写的程序 在 与计算机进行交互的过程中 其形式也是这样的一问一答 所以 几乎所有的编程语言都提供有直接与计算 机进行对话的函数 在 VBA 中 这样的最基本的函数是消息函数 MsgBox 与输入框函数 InputBox 请输入以下代码并运行 还有待完善的程序一 subsub B B DimDim X X X X inputbox inputbox 您的姓名是 您的姓名是 Msgbox Msgbox 欢迎您欢迎您 X X 朋友 朋友 EndEnd SubSub 注意 在输入 Msgbox 欢迎您 X 朋友 这行代码时 括号内几个字符串之间有空格 没有输入空格的话会出错 出错时 代码将以红色显示 本程序运行时如果点 取消 按钮 其实会出 现问题 关于对这个问题的解决方法 将在后面讨论 所以 我们先称本程序为 还有待完善的程序 朋友们可以先试一下 看看会出现什么问题 运行效果如图 2 1 与图 2 2 看到了吗 这就是最简单的与计算机进行对话的效果 代码解说 从 Sub B 到 End sub 就是一个完整的过程 B InputBox 您的姓名是 这句代码是显示一个 输入框 请您输入自己的姓名 这句代码事实 上就是一个计算机提问 人回答的 对话 过程 其中 InputBox 函数的作用就是弹出一个输入框 等 待我们回答计算机的提问 当然 我们在回答计算机时 可能填的是 老王 也可能填的是 老李 这个答案本身是不固定 的 所以 我们将这个答案的值赋予 变量 X 这下 大家可能就知道 变量 的含意了吧 在 程序运行中 我们经常会遇到值不能确定 或者是可能会发生改变的某个数据 在这个时候 我们就用一个 符号 来 代替 这个可能会变化的值 这个用来代替不能确定的值的 符号 就是 变量 现在 我们删去本程序中的 Dim X 这句后 再运行一下试试效果 怎么样 是不是感觉不到区别 如 果程序报错说 没有申明变量 的话 没有关系 请接着看下面的内容 在 VBA 语言中允许我们不申明变 量就直接运用它 所以程序仍然能够正常运行 Dim X 这句代码中的 Dim 就是申明变量的函数 Dim X 就是申明了一个名叫 X 的变量 在 X inputbox 您的姓名是 这句代码中 我们利用等 号 将输入框中取得的值赋予给了变量 X 虽说我们不申明变量就可以使用它 但这绝对不是个好的习惯 首先 在一些代码较长的程序中 您能 保证那些名字较长的变量在后面用到时 您不会输错吗 其次 自己不申明变量 时间久了 那些较长的程 序可能会连您自己也看不懂 另外 程序在访问申明过的变量时 速度会比访问没有申明过的变量要快一些 为了避免我们使用变量时出错 我们可以在 VBE 编辑器菜单的工具 选项 编辑器选项卡上 选中 要 求申明变量 见下面图 2 3 2 4 这样 VBE 会自动在我们每一个工程的前面加上一句 Option Explicit 这句代码将检查我们所要使用的变量是否申明 没有申明的话就会中止程序的运行 做了上述 的操作后 我们再运行去掉 Dim X 语句的过程 程序就会报 没有申明变量 的错误 关于变量 还有一些其它的知识 我们将在实例三中进行更深一步的学习 现在就到这吧 Msgbox 欢迎您 X 朋友 这句中的 msgBox 函数 大家已不陌生 它的作用就是弹 出一个消息框来 在本程序中 这个消息框就是计算机对我们输入姓名后的回答 在这个消息框所显示的文字中包含了三个部分 字符串 欢迎您 字符串 朋友 和变量 X 所 可能对应的字符串 老王 老李 等 在 VBA 语言中 我们使用 符号来连接字符串 所以我们在 程序运行最后 看到的是一个像图 2 2 那样完整的欢迎语句 VBA 语言中 在使用 连接符号时 请一 定注意字符串与字符串之间有一个空格 否则程序一定会出错 由于 MsgBox 函数与 InputBox 函数是两个非常常用的对话函数 所以 我们再对它进行更深一步的学习 使用 MsgBox 函数时的标准格式 变量 MsgBox 要显示在这儿的语句 按钮的参数 消息框的题目 例子 Y MsgBox 欢迎您 X 朋友 0 这里是欢迎对话框 请注意格式中英文状态下的引号 逗号与空格的使用 使用 InputBox 函数时的标准格式 变量 InputBox 要显示的提示文本 输入框的题目 输入框中默认显示的语句 例子 X InputBox 请输入您的姓名 这里是输入对话框 您的姓名请输入到这儿 根据上面的格式 请修改本实例的程序代码为 还有待完善的程序二 SubSub B B DimDim X X DimDim Y Y X X inputbox inputbox 您的姓名是 您的姓名是 姓名输入框姓名输入框 您的姓名请输入到这儿 您的姓名请输入到这儿 Y Y Msgbox Msgbox 欢迎您欢迎您 X X 朋友 朋友 0 0 这里是欢迎对话框这里是欢迎对话框 EndEnd SubSub 本段程序应该很容易读懂吧 运行一下 看看与前面程序的区别在什么地方 再分别把 MsgBox 函数的 参数 0 替换为 0 1 2 3 4 5 这几个参数并运行 看看又有什么不同 怎么样 对话框中给出的提示是 不是更丰富 下面的图 2 5 与图 2 6 是 MsgBox 函数的参数为 5 时的运行效果 请与前面的图 2 1 与图 2 2 对比一下 看看到底哪些地方有了变化 程序写到这么详细 您是否已经觉得它已经很完善了呢 那么 在当程序要求您输入您的姓名时 如果 您选择了 取消 会有什么现象呢 对 取消 按钮同样会向程序返回一个值 为了使用函数时更灵活 一些 VBA 将这些返回的值 固定 为以下的数值 这些在程序中被固定的值 就是 常数 MsgBox 函数的常数如下 确定 按钮被单击时 返回 1 取消 按钮被单击时 返回 2 终止 按钮被单击时 返 回 3 重试 按钮被单击时 返回 4 忽略 按钮被单击时 返回 5 是 按钮被单击时 返回 6 否 按钮被单击时 返回 7 InputBox 函数在使用过程中 当人们输入了值的时候 选择 确定 或按下回车键 则返回输入框中 的内容 输入框中的内容显示不是 固定 的 也就是说它不是常数 但是 如果人们在要求输入之时选择 的是 取消 按钮 则会返回一个值 这个值是 空值 注意 空值 并不是 零 所以 InputBox 函数只有一个常数 空 下面 我们用 如果 If 那么 Then 否则 else 结束 end if 判断语句来完善我们今天 的实例 关于 If 判断语句 不是本实例的学习重点 下节课我们将会详细介绍它 代码中必要的地方已 添加了注释 还记得为代码添加注释的方法吗 完善后的 B 程序 SubSub B B DimDim X X DimDim Y Y X X InputBox InputBox 您的姓名是 您的姓名是 姓名输入框姓名输入框 您的姓名请输入到这儿 您的姓名请输入到这儿 IfIf X X Then Then 如果如果 X X 的值不为的值不为 空空 那么 那么 Y Y MsgBox MsgBox 欢迎您欢迎您 X X 朋友 朋友 0 0 这里是欢迎对话框这里是欢迎对话框 Else Else 否则 即 的值为否则 即 的值为 空空 EndEnd If If 结束结束 EndEnd SubSub 代码 If X Then 中的 是大于与小于符号 表示 不等于 的意思 分别运行本程序与最前面的程序 并选择 取消 对比一下运行的效果 从完善后的程序中 想必您不 难看出 常数 在程序中的作用了吧 请再多体会体会这本实例中的这几个例子 您对 MsgBox 与 InputBox 这两个函数的熟悉程度 将直接影 响您后面的学习 加点油吧 本实例的知识扩展 1 请将本课中学到的 MsgBox 函数的参数分别运用到实例一中 看看效果如何 2 请思考 哪些情况下 会使用到 MsgBox 函数的不同返回的值 好了 实例二到此结束 请再回顾一遍本实例的知识点 您都掌握了吗 是不是觉得 VBA 并不像想象中 那么困难 如果您确信已完全掌握了前面这两课的内容 那么 准备接受实例三的挑战吧 从零开始 步入从零开始 步入 WordWord 宏编程的世界 第三讲 宏编程的世界 第三讲 实例三 猜数游戏 知识点 1 学习变量的类型与转换 2 掌握程序的循环与判断 3 学习随机数的生成 通过对前面两个实例的学习 相信您对自己掌握 VBA 编程已充满了信心 今天 我们将编写一个小小的 游戏程序 这个游戏程序中既包含了新的知识点 又要考验您对前两课知识运用的熟练程度 就让我们静下 心来克服这个小难关吧 游戏内容是这样的 电脑生成一个 0 到 99 之间的整数 请您来猜这个数是多少 每猜一次 电脑都给 您一个提示 直到您猜中为止 程序思路 电脑首先生成一个 0 到 99 之间的整数 请您输入您所猜的数 把您输入的数与电脑所生成的数进行比较 并给出 您猜大了 或 您猜小了 的提示 如果您猜对了 则退出程序 如果您没有猜对 则循环回第二步重复运行 让您再次输入自己所 猜的数 请看代码 必要的地方已添加了注释 程序中退格与对齐是为了便于理解 请您先试着自己把代码读一 读 看看能不能读懂 程序名 您猜 Sub 您猜 Dim a b c d 申明了四个变量 变量间用英文逗号分开 与前面实例二申明变量的写法不同 结果 相同 a 0 这个变量用于计算您猜了多少次 Randomize 准备生成一个随机的数字 先初始化随机数生成器 b Int 100 Rnd 生成一个百以内的随机数 Rnd 就是 随机数生成函数 Do 开始循环 a a 1 您猜的次数增添一次 当再次循环到这儿时 次数会继续往上加 c InputBox 请输入您所猜的数 将取得的值赋予变量 c c 是字符串 d CInt c 将变量 c 转化为整数 再将值赋给 d If b d Then 进行比较 如果猜小了 MsgBox 您猜的数小了 显示比较的结果 Else b d 进行比较 如果猜对了 MsgBox 哈哈 您猜对了 显示比较的结果 Exit Do 既然已经猜对了 就跳出循环 End If 结束比较 Loop 回到前面的 Do 继续循环 MsgBox 您猜了 a 次 弹出消息框 并使用了字符串连接 End Sub 结束程序 运行本程序 看看效果 并根据注释 体会循环与判断在本程序中的作用 代码解说 a 这个变量 用于计算您所猜的次数 每多猜一次 它就在自身的基础上加 1 其相应的代码是 a 0 与 a a 1 两句 程序结尾时 将在消息框中显示 a 的值 b 这个变量 用于记录一个随机生成的数字 其相应代码为 Randomize 与 b Int 100 Rnd 这两句 其中 Randomize 这个语句在本程序中非常重要 如果您去掉这个函数 再多运行本程序几次的话 您就会 发现猜测的答案居然是有规律的 换句话说 只要我知道了电脑所出数字的规律我就可以 百发百中 地 一次猜中这个数 所谓 随机数 顾名思义就应该是 随机 产生的数 在没有 Randomize 语句的情况下 这些产生的数看似很 随机 其实有规律 这种随机数就是 伪 随机数 所以 Randomize 语句的作用 就是生成 真正 的随机数 Rnd 函数是生成一个介于 0 与 1 之间的小数 乘以 100 是让这个小数成为一个介于 0 到 100 之间的数 Int 函数的作用是将一个数的小数部分去掉 只保留它的整数部分 即 取整 通过这样一个可能大家觉 得有点复杂的过程 我们得到了一个 0 到 99 之间的整数 大于 99 而小于 100 的小数在取整后即是 99 所 以前面我们说 乘以 100 是为了生成一个介于 0 到 100 之间的数 而真正取整之后最大的数只能是 99 并将它的值赋予了变量 b 生成随机数 是很多程序中要用到的功能 特别是游戏 比如游戏中随机生成不同的怪物或不同的宝物等 上面的内容希望大家能悉心地体会 c 这个变量 是取得输入框中我们所猜测的数字 其相应代码是 c InputBox 请输入您所猜的数 但计算机并不认为我们所输入的是一个数字 整数 它把我们输入的内容看成是文字 字符串 显然 文字是没有办法去与数字比较大小的 所以 我们要用到变量 d d 这个变量 是一个整数 它是利用了 转换函数 CInt 将我们所取得的字符串变量 c 转换成了一个整数 其相应代码是 d CInt c 也就是说 本程序中最终进行比较的 是两个整数 b 与 d 这里涉及到 VBA 数据类型的知识 对于 VBA 的数据类型 这里主要为大家介绍两种 Integer 包含 32 768 到 32 767 之间的整数 该类型的数值基本上可以满足我们通常使用整数时的需 要 String 包含变长字符串 最大长度可为 20 亿个字符 该类型的值其实就是我们常用的字符串 我们在程序当中用的 CInt 函数 就是将一个 String 类型 字符 的值 转换成了一个 Integer 类型 整数 的值 所以我们称 CInt 函数为 转换函数 与 CInt 类似的常用转换函数还有 Clin CSng CStr 等 可以把 VBA 帮助文件中的 转换函数 与 数据 类型 相互参照进行学习 相信这个时候您看帮助文件中的这部分内容 将不会再是一件难事 感觉到困难了吗 如果感觉到了困难 就请将上面的内容再体会体会 准备进入下一个知识点 程序中的 DO Exit Do 以及 Loop 为一个整体 其中 Do 是开始进入循环 Loop 是指回到 Do 语句处 再次 进行循环 Exit Do 是指当符合某一个条件时就直接退出循环 在本程序中 Exit Do 是指当猜中了 即 b d 时 退出循环 而无论是猜大了 b d 还是猜小了 b 程序中数字的比较 是利用 If 语句来实现的 在实例二中 我们已接触过 If 语句 If 语句的基本格式是 If 条件 Then 结果 End If 结束 If 判断语句 在 If 语句判断的过程当中 还可以有子判断语句 Elseif then 对于一个具有多重判断的语句 我们大致可以这样理解 如果 If 那么 Then 否则 Elseif 那么 Then 再否则 Elseif 那么 Then ElseIf 根据情况可以套嵌很多层 最终 Else 结束判 断 End If 本实例的知识扩展 1 试一试自己在程序结尾处再添几句 判断所猜的次数 如果小于六次 给出一个评价 优 等于 六次 给出一个评价 良 大于六次 给出一个评价 您还需努力 2 试一试给程序补充部分内容 其功能为 在猜完一次后 询问游戏人 您还愿意再玩一次吗 并根据游戏者的响应 再次运行程序或退出程序 3 如果在刚开始游戏让我们输入数字时 我们选择了 取消 就会出错 您现在能利用自己已有的知 识来解决这个问题吗 好了 到这里 我们再回过头来看一看这个程序 理解起来还有困难吗 本实例可能比前两个实例稍难一点 如果您能顺利完成知识扩展中的问题题 那么祝贺您 您已过了入门的第一个小难关 可以进入下一步的实 例四了 如果您还存在疑问 则再请多动手把前三个实例练一练 附 完善的猜数游戏 Sub 您猜 Dim a b c d e f e 6 该数字用于计算所猜次数是否为优 良等 Do a 0 Randomize b Int 100 Rnd Do a a 1 c InputBox 请输入您所猜的数 d CInt c If b d Then MsgBox 您猜的数小了 Else b d MsgBox 哈哈 您猜对了 Exit Do End If Loop MsgBox 您猜了 a 次 If a e MsgBox 您还需努力 Elseif aMsgBox 您的猜数能力 优 Else a e MsgBox 您的猜数能力 良 End if f MsgBox 您还愿意继续玩吗 4 继续游戏 注意此处常数的使用 if f 7 then 注意此处消息框返回值的使用 exit do else end if loop End Sub 从零开始 步入从零开始 步入 WordWord 宏编程的世界 第四讲 宏编程的世界 第四讲 实例四 窗体与基本的控件 知识点 1 窗体与控件的使用 2 什么是 设计时 什么是 运行时 3 了解什么是对像 属性 方法和事件 扎实的基础知识是我们顺利掌握 VBA 编程语言的先决条件 说到基础知识 我想告诉朋友们 我们 必须建立起 面向对像 的编程思想 面向对像 进行编程的思想实在是太重要了 我们所接触的所有事 物都是对像 都有属性 也都有属性值 如果您不相信 那么请看 您怎样来描述自己家里的电视机呢 它的身高 体重 住址 年龄 颜色 频道个数 声道个数 音量 大小 屏幕大小 分辨率 刷新率 对 这些都是电视机的 属性 在这里 电视机 就是一个 对像 以下 假设我们生活在 VBA 编程语言 当中 生活中的事物就是 VBA 的对像 那么 我们怎样来找 出一个 对像 的属性 或是怎能样来对 对像 的属性进行赋值呢 看下面的程序 程序名 您想看几频道 Sub 您想看几频道 Dim X X InputBox 请输入您想看的频道的值 电视机 频道 X End Sub 运行这代码 输入您想看的频道的值 比如 10 或是 36 那么 您就会看到 10 频道或是 36 频道 的节目 这里 电视机 是对像 频道 是它的属性 10 或 36 是它的属性值 在 对像 引用自 己的某个 属性 时 我们在它们之间用一个小圆点 英文的句号 来表示 具体的格式如代码 电视 机 频道 X 中所示 设置值的时候 用等号来赋予它 说到赋值 您是不是想执行 电视机 屏幕尺寸 100 吋 命令呢 呵呵 有些事物的属性值是 只 读 的 不能修改 比如电视机的重量等 现在 我正在看一个节目 但我不知道这个节目所在的是几频道 怎么办呢 请看程序 程序名 当前频道是多少 Sub 频道是多少 Dim 频道的值 频道的值 电视机 当前频道 MsgBox 频道的值 End Sub 程序不难懂吧 前一个程序 您想看几频道 中 我们是将 值 赋予对像的属性 后一个 频道是多少 程序中 我 们是取得对像属性的 值 这两种类型的程序在使用时刚好相反 但 它们在 VBA 编程语言中的运用几乎 可以说是无处不在 请一定要认真体会这两个程序中关于 对像 属性 与 值 之间的关系 那么 什么又是事件和方法呢 对于电视机来说 当它的电源接通时就发生了 电源接通事件 反之 它的电源断掉时就发生了 电源断掉事件 方法 则是指人对电视机进行的操作 比如 现在显示的是 10 频道 我在电视机的频道调节按钮上 向前按了 5 次 则进入了 15 频道 电视机支持使用 频道按钮 进行 频道调节 的动作 就可以说成是它支持 用按钮调整频道 的 方法 5 就是这个方法的参 数 只要是您家里电视机所支持的值 当然都可以作为它的参数 那位朋友说了 喂 大哥 我们可是在学习 Office 的 VBA 编程语言啊 怎么扯到电视机上去了 好吧 我们来谈 Office Office 是一个对像 Word 是一个对像 窗口是一个对像 文档是一个对像 段落 标题 一行文字 一个字符 一个标点 一个表格 一个单元格 无一不是对像 它们都有颜色 大小 宽窄 数量 位置 等等属性 我们利用 VBA 语言进行编程 不外乎就是为了控制某个对像的某个属性值 以方便我们的工作罢了 对于对像 属性 方法 事件 我们先了解这么多 在实例六我们将继续对其进行学习 今天 我们先 试试这些知识在窗体与控件上的运用吧 一 界面制作一 界面制作 1 打开 VBE 指向 插入 菜单 点击 插入用户窗体 命令 也可以在工具栏中做同样的动作 窗体的名称默认为 UserForm1 如图 4 1 2 点击控件工具箱按钮 打开控件工具箱 选中工具箱中的 按钮 控件 在窗体上 画 出一个按 钮控件 按钮控件 就是控件工具箱中的那个方形的小块 按钮的名称默认为 CommandButton1 二 属性赋值方法之一 二 属性赋值方法之一 注意 下面进入今天的关键知识点 1 首先 双击做好的窗体或按钮 就会打开代码窗口 保证光标在窗体或按钮代码的正中间 按下 F5 键运行它 或在 运行 菜单中选择 运行用户窗体或子过程 命令运行它 看看效果 如图 4 2 左面 这里需要注意两点 A 如果光标不在代码中间 而您的模块中又还存在其它的代码的话 运行时 VBE 会让您选择要运行 的宏名称 B 如果工程被锁定而不能运行的话 首先请在 工具 宏 安全性 对话框中把安全性设为 低 然后删除 VBE 中所有存在的代码 并关闭 Word 等一下再重新启动 重新开始本步的操作 当然 如果 您 VBE 中以前的代码需要保存的话 最好把它剪切到其它文本中去 要用时再复制过来 最后 千万记得在 本实例完成之后 把 安全性 改回为高 以避免宏病毒 2 右击按钮 CommandButton1 选 属性 如果 属性 对话框本来就的打开的 则选中按钮 CommandButton1 然后直接修改属性就行了 在 属性 对话框中选 Caption 在右面的属性值中输 入 开始运行 保存后 再次运行 看看与第 步运行时相比 效果有什么不同 对 按钮上面的提示文 字已经改变成 开始运行 了 对比效果如图 4 2 以上这两个步骤中 需要我们应该掌握的知识就是 怎样在属性对话框中 对控件的属性进行赋值 下面 我们还要为控件的属性赋值 但赋值的方法有所不同 请注意体会以下赋值方法与上面的区别 三 属性赋值方法之二三 属性赋值方法之二 请撤消前面添加 开始运行 属性的操作 回到按钮表面提示文字仍然是 CommandButton1 时的状态 双击 CommandButton1 将打开 CommandButton1 的代码窗口 代码窗口已为我们生成了控件被单击时的 空过程 现在 我们就在这个 CommandButton1 的 Click 事件 即按钮被单击的事件 空过程中 添加如 下的代码 用代码修改属性 Private Sub CommandButton1 Click CommandButton1 Caption 开始运行 End Sub 本实例之初 我们学习了为对像的属性赋值的格式 那么 您看到代码 CommandButton1 Caption 开始运行 时 应该不难理解吧 代码中的 CommandButton1 是指窗体上的那个按钮 如果有多个按钮的话 就会分别被命名为 CommandButton2 CommandButton3 等等 如果要解释上面的程序 就应该是 当按 钮被 Click 单击 时 按钮的 Caption 提示文字 就被改变为 开始运行 运行本程序并单击按钮看看出现了什么效果 在按钮被单击前 运行的效果与第 1 步一样 与图 4 2 左 面相同 当按钮被单后 是不是与第 2 步运行时的情况一样 与图 4 2 右面相同 第 2 步中 我们是 先设计好了 按钮的提示文字再运行 第 3 步中 我们根本没有 设计 按钮的提 示文字 而是已经 在窗体运行的时候 利用了按钮的单击事件 改变了按钮表面的提示文字 对于第 2 步 中的做法 我们称之为 设计时 修改控件 对于第三步中的做法 我们称之为 运行时 修改控件 设计时 修改控件的属性虽然更方便 更容量掌握 但它往往没有 运行时 修改控件属性那么灵活 下面我们再做一个例子 动态改变按钮与窗体的属性值 再体会体会 运行时 修改属性值的灵活性 将前 面的代码修改如下 利用单击按钮事件 动态改变按钮名与窗体颜色 Private Sub CommandButton1 Click If CommandButton1 Caption CommandButton1 Then CommandButton1 Caption 开始运行 ElseIf CommandButton1 Caption 开始运行 Then CommandButton1 Caption 点我干嘛 别烦我 ElseIf CommandButton1 Caption 点我干嘛 别烦我 Then UserForm1 BackColor RGB 255 128 128 CommandButton1 Caption 想让我给你点颜色吗 ElseIf CommandButton1 Caption 想让我给你点颜色吗 Then UserForm1 BackColor RGB 0 128 64 CommandButton1 Caption 你真的不怕我变脸吗 ElseIf CommandButton1 Caption 你真的不怕我变脸吗 Then UserForm1 BackColor RGB 128 0 255 CommandButton1 Caption 怕了你了 我逃 Else CommandButton1 Caption 怕了你了 我逃 Unload UserForm1 Unload 是窗体的一个方法 其作用是卸载窗体 End If End Sub 本程序中用到了窗体的颜色属性 BackColor 及其属性值 RGB 的知识 我们在利用 VBA 对 Word 中 的文字进行修饰时 经常会用到颜色属性及其值的设置 这里正好学习一下 代码最后的 Unload 是窗体 的一个方法 其作用是卸载窗体 与平时我们关闭窗体时按右上角最大 最小化按钮那里的 X 按钮等价 有卸载就有加载 加载并显示窗体的命令是 Show 该命令的使用格式是 窗体名 Show 本实例的知识扩展 1 朋友们在 设计时 属性设置中 下点功夫摸索摸索 尽快熟悉窗体 按钮的各种属性 2 本例只用到了 控件工具箱 中的按钮控件 其它的控件虽然在作用上各不相同 但在使用的方法 上与按钮控件没有什么大的区别 朋友们就自己尝试一下其它的控件吧 3 请您制作一个窗体 上面加上两个按钮 一个按钮运行实例三中的游戏 另一个按钮退出游戏 实例四到此结束 怎么样 有收获吗 下一个实例 Word 版的媒体播放器 将是我们前面知识的一个 集中练习 也将是一个会让您很有 成就感 的练习 还等得及吗 从零开始 步入从零开始 步入 WordWord 宏编程的世界 第五讲 宏编程的世界 第五讲 实例五 Word 版的 媒体播放器 知识点 1 进一步熟悉 VBE 的操作界面 2 学习使用窗体与控件进行编程 3 学习运用附加的控件进行编程 通过以上四个实例的学习 今天 我们终于迎来了激动人心的时刻 编写一个 Word 版的媒体播放 器 媒体播放器 大家不会陌生吧 对 就是开始 程序 附件 娱乐中的 Media player 播 放器 相信本实例会给您带来成就感 也算是对我们前四个实例辛苦学习的一点点回报吧 当然 在高兴 之余 千万不要忘了对本实例中知识点的学习 其实 本实例中 理论知识上的难度几乎没有 但操作上的 步骤却相当多 朋友们耐心一点 步骤一 界面的制作步骤一 界面的制作 1 回忆实例四中的操作方法 在 VBE 中添加一个窗体 窗体上添加两个按钮 将窗体的 Caption 属 性改为 Word 版媒体播放器 再分别将两个按钮的 Caption 属性改为 开始运行 与 结束程序 2 右击控件工具箱 选 附加控件 将 附加控件 面板的滚动条拖动到最底端 然后选中 Windows Media player 控件 确定 后 退出 附加控件 面板 图 5 1 这时控件工具箱最下面 就多出了一个网格状的 Windows Media player 控件 3 选中 Windows Media player 控件 在窗体上按您的需要和喜好 画 出它将要显示的范围 4 现在 我们就可以利用 属性对话框 开始对整个窗体及窗体上所有的控件进行 美化 美化 的内容就按您自己的喜好看着办好了 反正是 设计时 修改控件 不会影响最终程序的运行 我修改了窗 体和按钮的颜色 并修改了按钮上的字体以及字号和字色 最终的效果如图 5 2 准备工作已就绪 开始编写代码了吧 步骤二 编写代码步骤二 编写代码 1 双击 开始运行 按钮 在 VBE 自动生成的空过程中输入如下代码 Private Sub CommandButton1 Click MediaPlayer1 FileName D MyMpg 龙珠 2 mpg End Sub 注意 office2003 及以上版本 上句代码应该是 WindowsMediaPlayer1 URL D MyMpg 龙珠 2 mpg 这是因为在这些版本上 MediaPlayer 控件的属性与方法已略有些变化了 代码解说 关于 过程 就不消多说了吧 MediaPlayer1 就是我们在 设计时 所添加的 MediaPlayer 控 件 它尾巴上的 1 指它是在本窗体上的第一个 MediaPlayer 控件 FileName 是 MediaPlayer1 的一个属性 这个属性的值就是将要播放的媒体文件的名称 还记得为属性赋值的格式吗 这整句代码可是一个标准的赋值语句 等号后面大家就很清楚了 是要播放的文件的路径与文件名 当然 您的电脑上恐怕不会有 D MyMpg 龙珠 2 mpg 文件的 您可要根据自己电脑上的实际情况输入这 部分的内容 2 双击 结束程序 按钮 在打开空过程中输入 Private Sub CommandButton2 Click Unload UserForm1 End Sub 代码解说 这段代码如果还需要解说的话 就请再看看实例四的后半部分内容 完成前两步代码输入后 可以将光标定位于 开始运行 按钮的代码区正中间 然后按下 F5 键 看 到了什么 怎么样 有成就感吧 还没完呢 赶快 结束程序 编完最后的代码吧 3 回到 Word 指向工具 宏 打开 宏名 对话框 不要告诉我 你找不到这个对话框 在 宏 名 中输入 我的播放器 没有引号 点击 创建 按钮 在 VBE 所生成空过程中输入 Sub 我的播放器 UserForm1 Show End Sub 本段代码与上段代码一样 也无需解说了吧 4 回到 Word 打开工具 自定义 拖动 命令 选项卡的滚动条到最底部 选中 类别 窗格中的 宏 再找到右边 命令 窗格中的 我的播放器 宏 左键按住它 不要让它跑掉 拖动它到 任意 的 菜单栏 或 工具栏 上 好 松左键 它跑不掉了 图 5 3 保证它是被选中的 再回到 命令 选项卡上 点击正中间的 更改所选内容 把它的名字 美化 一下 或者再给它添一个图标 怎么样 帅吧 酷吧 图 5 4 5 从此之后 王子和公主就在您的 Word 中 哦 错了 应该是 从此以后 您的 Word 中 就多 了一个可以播放 Mpg Mp3 等等媒体的小妞 啊 又错了 是 小钮 当然 要播放的内容还得您 自己为它指定 写进代码中去 本实例的知识扩展 1 修改代码来确定媒体文件的路径及文件名不麻烦吗 难道您不愿意使用 输入框 2 有没有办法指定一个文件夹后 播放器就自动将这个文件夹下的媒体文件一个一个地播放出来呢 或者 将要播放的文件名写在一个文本文件中 让播放器一个一个地读出它的名字来播放呢 3 如果要求您不用 设计时 修改控件属性 而让您用 运行时 修改控件属性的方法 来制作步骤 一中的界面 您不愿意试一试吗 4 都有哪些附加控件 各附加控件的作用又都是什么呢 本实例至此结束 VBA 好玩吧 对我们的实例六 您是否已有所期待了呢 从零开始 步入从零开始 步入 WordWord 宏编程的世界 第六讲 宏编程的世界 第六讲 实例六 Word 中的常用对像 属性 方法和事件 知识点 掌握 Word 中常用的对像并学习这些对像主要的属性 方法和事件 在实例四中 我们已接触了对像 属性 方法和事件的基本概念 今天 我们就来学习一下 Word 中的 常见对像以及它们的属性 方法和事件 本实例的内容稍微多了一些 为了便于朋友们的理解 以下将主要 介绍 Word 中最重要的几个对象 属性 方法与事件 要想得到更详细的内容 朋友们可以在完全掌握本实 例后 尝试看看 VBA 的帮助 在帮助文件中搜索 Microsoft Word 对象 即可 本实例将重点介绍以下的对象 首先理清我们今天要学习的 对像 的结构层次 ApplicationApplication 对像对像 即 Office 中您正在运行的程序本身 如 Word 或 Excel 等 Application 对像是一 个应用程序中的 总对像 或者说是 顶级对像 在 Word 中 Application 对像包含了程序中可能会存 在的其它所有对象 比如 所有的 Word 文档 Documents 程序本身的工具栏与菜单栏 CommandBars 程序的窗口 Window 程序的内置对话框 Dialogs 等等 DocumentsDocuments 对像 对像 即所有 Word 文档的集合 该对像中每一个单独的文档 即是文档对像 DocumentDocument 在 Documents 对像中 可以通过引用文档名字的方法来操作一个 Document 对像 DocumentDocument 对像 对像 Document 对像又具许多子对像 本实例主要介绍两个 RangeRange 对象对象 字符串对像 可以是选定的一串字符或者是一个字符 与 SelectionSelection 对象对象 活动区域对像 可以是文档中选中的内容或者 仅仅是一个插入点 了解 Paragraphs 段落集合对像 CommandBarsCommandBars 对像 对像 即 命令栏 对像 它是 Application 中所有菜单栏与工具栏的集合 我们在编程 时 对菜单栏与工具栏的修改 都是通过操作 ComandBars 对像来实现的 由于该对像在 VBA 编程中特 别重要 我们将在实例七中单独对其进行介绍 ApplicationApplication 对像对像 Application 对像的 Quit 方法 该方法用于退出应用程序 Application 例如 关闭程序的代码 sub 关闭程序 Application quit End sub 执行本段代码 就会退出正在运行的 Office 程序 相应的 Application 对像 可以是 Word Excel 等 在实际工作中 Quit 方法可以用于提示用户保存所有目前打开的文档 下面例子中 如果用户单击 是 按钮 在退出 Word 前 所有打开的文档都将以 Word 格式进行保存 退出时提醒的代码 Sub 退出时提醒保存 Dim Tishi Tishi MsgBox 您要保存目前所有的文档吗 4 提示您保存文档 If Tishi 6 Then Application Quit SaveChanges wdSaveChanges OriginalFormat wdWordDocument End If End Sub 代码解释 MsgBox 的参数 4 与返回值 6 现在大家不会不明白了吧 4 表示显示 是 否 两个按钮 6 则表示操作者选择的是 是 按钮 代码 SaveChanges wdSaveChanges 是指进行 保存 的操作 OriginalFormat wdWordDocument 则指定保存的格式为 Word 的文档格式 关于 Save 方法 后面我 们将会进一步学习 Application 对像的 ActiveDocument 属性 ActiveDocument 属性返回一个 Document 对像 即当前正在使用的 活动文档 下例显示当前活 动文档的名称 显示活动文档的名称 Sub 显示名称 Dim nameA NameA Application ActiveDocument name Msgbox NameA end sub 本段代码中用到了 Document 对像的一个属性 Name 该属性返回文档的名称 DocumentsDocuments 对像对像 一 Open 方法 用于打开 Documents 集合中的单个 Document 对象 Open 方法的基本语法格式 Documents 对像 Open 可包含路径的文件名 比如 打开 C 盘 MyFile 文件夹下的 MyDoc doc 文档 打开文件 Sub 打开文件 Documents Open C MyFiles MyDoc doc End Sub 本代码演示了 Open 方法的基本使用格式 其实 Open 方法的可选参数有很多 有的能指定 打开文档 的方式 为 只读 有的能指定 打开文档时所需的密码 等 参数的内容可在帮助文件中找到详细介绍 二 Add 方法 Documents 对像的 Add 方法 可以新建一篇空白文档 比如 新建文档 Sub 新建文档 Documents Add End sub Add 方法中可以使用以下参数 以何种样本模版为母版新建文档 是否将该新建的文档保存为另一个模 版 新建的文档以何种类型保存 Web 页 电子邮件 带框架的文档等 新建文档是否显示 即可以隐藏 等等 参数的使用可以查找帮助文件 三 Item 方法 Item 方法可以通过 ID 集合中的序号 或名称返回集合的单个成员 例如 显示 Documents 集合中第一篇文档的名字 Sub 显示名字 Dim Ming If Documents Count 1 Then 如果集合中文档的个数大于或等于 1 那么 Ming Documents Item 1 Name 获得第一个文档的名称 MsgBox Ming End If End
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准商铺租赁合同范本
- 烟台科技学院《体育社会组织建设与管理》2023-2024学年第一学期期末试卷
- 南京工业大学《轨道交通通信系统》2023-2024学年第二学期期末试卷
- 江西经济管理职业学院《波与成像》2023-2024学年第二学期期末试卷
- 2025塑料保护剂经销合同
- 吉利学院《Biochemistry》2023-2024学年第二学期期末试卷
- 2025至2031年中国大喷量实心锥喷嘴行业投资前景及策略咨询研究报告
- 2025花卉采购合同书范本
- 2025年室内排水、电线、网络等管道井专项劳务分包施工合同
- 老式住宅拆除方案范本
- 【公开课课件】《农业区位因素及其变化》
- 2024届清华大学强基计划数学学科笔试试题(附答案)
- (必会)军队文职(数学1)近年考试真题题库(含答案解析)
- 全国统一规范电子税务局概况介绍及操作辅导
- 工商企业管理毕业论文范文(4篇)
- 浙江省杭州市(2024年-2025年小学三年级语文)人教版开学考试(上学期)试卷(含答案)
- 【贸易战背景下华为公司危机应对措施及其启示18000字(论文)】
- 【网络谣言型寻衅滋事罪的认定存在的争议探析8600字(论文)】
- 2024延迟退休政策详解
- 水泥标准培训考核2024
- 图书馆运营管理服务投标方案(技术方案)
评论
0/150
提交评论