WODR宏与自动图文集.ppt_第1页
WODR宏与自动图文集.ppt_第2页
WODR宏与自动图文集.ppt_第3页
WODR宏与自动图文集.ppt_第4页
WODR宏与自动图文集.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*1 n n 一、一、WordWord的宏的宏 n n 二、自动图文集二、自动图文集 n n 三、综合应用实例三、综合应用实例 * 第04讲 宏与自动图文集 2 一、Word的宏 n n 在你使用在你使用WordWord编辑文档时,如果你希望让编辑文档时,如果你希望让 WordWord自动完成某些操作,可以使用自动完成某些操作,可以使用WordWord提提 供的自动化工具供的自动化工具WordWord宏宏。 n n 比如,在一段时间内,你可能需要使用比如,在一段时间内,你可能需要使用WordWord 多次编辑同一篇文章,你可能希望一经启动多次编辑同一篇文章,你可能希望一经启动 WordWord就自动打开该篇文档。而且再次打开该就自动打开该篇文档。而且再次打开该 文档时,非常希望文档时,非常希望WordWord能够自动将插入点移能够自动将插入点移 动到上次关闭该文档时插入点所在的位置。这动到上次关闭该文档时插入点所在的位置。这 时,你尽管请时,你尽管请WordWord自动宏来帮忙好了。自动宏来帮忙好了。 * 第04讲 宏与自动图文集 3 1.什么是Word宏 n n 如果需要在如果需要在WordWord中反复进行某项工作,就可中反复进行某项工作,就可 以考虑利用宏来自动完成这项工作。以考虑利用宏来自动完成这项工作。 n n WordWord中的宏是一系列组合在一起的中的宏是一系列组合在一起的WordWord命命 令和指令,它们形成了一个命令,以实现任务令和指令,它们形成了一个命令,以实现任务 执行的自动化。执行的自动化。 n n 你可以创建并执行宏你可以创建并执行宏( (宏实际上就是若干条自宏实际上就是若干条自 定义的命令定义的命令VBA)VBA),以替代人工进行的一系列,以替代人工进行的一系列 费时而单调的重复性费时而单调的重复性WordWord操作,自动完成所操作,自动完成所 需任务。需任务。 * 第04讲 宏与自动图文集 4 n n 在默认情况下,在默认情况下,WordWord将宏存储在将宏存储在NormalNormal模模 板内,这样每个板内,这样每个WordWord文档都可以使用它。如文档都可以使用它。如 果需在单个文档中使用宏,则可以将宏存储在果需在单个文档中使用宏,则可以将宏存储在 该文档中。该文档中。 * 第04讲 宏与自动图文集 5 2.Word提供的自动宏 n n 在创建宏时,通过为一个宏赋予某个特殊的名称在创建宏时,通过为一个宏赋予某个特殊的名称 ,就可以在执行某项操作,就可以在执行某项操作( (如启动如启动WordWord或打开一或打开一 个文档个文档) )时自动运行它,时自动运行它,该类宏被称为自动宏该类宏被称为自动宏( ( WordWord提供的自动宏及其运行条件见下表提供的自动宏及其运行条件见下表1)1) n n 与其他宏一样,自动宏也可以保存于与其他宏一样,自动宏也可以保存于NormalNormal模模 板、其他模板或文档之中。但是板、其他模板或文档之中。但是要让自动宏自动要让自动宏自动 运行,则它必须位于活动文档的运行,则它必须位于活动文档的NormalNormal模板中模板中 ,或活动文档选用的模板中。,或活动文档选用的模板中。 * 第04讲 宏与自动图文集 6 表1 宏宏 名名运运 行行 条条 件件 autoexecautoexec启启动动wordword或加或加载载全局模板全局模板时时 autonewautonew每次新建文档每次新建文档时时 autoopenautoopen每次打开已有文档每次打开已有文档时时 autocloseautoclose 每次关每次关闭闭文档文档时时 autoexitautoexit退出退出wordword或卸或卸载载全局模板全局模板时时 * 第04讲 宏与自动图文集 7 n n AutoExecAutoExec宏宏是个例外,它只有存储于是个例外,它只有存储于NormalNormal 模板、通过模板、通过“ “模板和加载项模板和加载项” ”对话框全局加载的对话框全局加载的 模板、或由模板、或由“ “StartupStartup” ”文件夹指定的文件夹中文件夹指定的文件夹中 的全局模板中,才可自动运行。的全局模板中,才可自动运行。 n n 说明:说明:在命名冲突的情况下在命名冲突的情况下( (多个自动宏名相多个自动宏名相 同同) ),WordWord将运行上下文中最近的自动宏。将运行上下文中最近的自动宏。 * 第04讲 宏与自动图文集 8 n n 如果不希望运行自动宏,这时请如果不希望运行自动宏,这时请按住按住ShiftShift键就键就 可以终止自动宏的运行可以终止自动宏的运行。 n n 具体方法具体方法: :单击单击“ “文件文件” ”“ “新建新建” ”,然后按住,然后按住 ShiftShift键,单击键,单击“ “确定确定” ”按钮,并且在显示新文档按钮,并且在显示新文档 之前一直按住之前一直按住ShiftShift键。键。 n n 如果运行一个宏时有可能触发自动宏,可用下如果运行一个宏时有可能触发自动宏,可用下 列指令终止自动宏的运行:列指令终止自动宏的运行: WordBasic.DisableAutoMacrosWordBasic.DisableAutoMacros * 第04讲 宏与自动图文集 9 3.创建需要的自动宏 n n 在在WordWord提供的五个自动宏中,提供的五个自动宏中,AutoExecAutoExec宏宏 会在每次启动会在每次启动WordWord时被自动执行,所以我们时被自动执行,所以我们 只要赋予该宏打开上次编辑文档的功能,则可只要赋予该宏打开上次编辑文档的功能,则可 实现实现让让WordWord启动后自动打开最近编辑过的文启动后自动打开最近编辑过的文 档档了。创建该了。创建该AutoExecAutoExec宏的步骤如下:宏的步骤如下: * 第04讲 宏与自动图文集 10 n n 1.1.单击单击“ “工具工具” ”“ “宏宏” ”“ “录制新宏录制新宏” ”,在,在“ “宏名宏名” ” 框中键入宏的名称,在此我们键入框中键入宏的名称,在此我们键入 “ “AutoExecAutoExec” ”。 n n 在在“ “将宏保存在将宏保存在” ”框中,单击要用来保存宏的模框中,单击要用来保存宏的模 板或文档,自然我们应选择板或文档,自然我们应选择“ “所有文档所有文档 ( (Normal.dotNormal.dot) )” ”;在;在“ “说明说明” ”框中,键入对宏的框中,键入对宏的 简单说明简单说明( (如图如图1)1)。 * 第04讲 宏与自动图文集 11 * 第04讲 宏与自动图文集 12 n n 2.2.如果如果不想将宏指定到工具栏、选单或快捷键不想将宏指定到工具栏、选单或快捷键 上上,请单击,请单击“ “确定确定” ”按钮开始录制宏。按钮开始录制宏。 n n 如果如果要将宏指定到工具栏或选单上要将宏指定到工具栏或选单上,请单击,请单击“ “ 工具工具” ”“ “自定义自定义” ”“ “命令命令” ”选项卡,再单击选项卡,再单击“ “命命 令令” ”框中正在录制的宏,并将其拖动到所需的框中正在录制的宏,并将其拖动到所需的 工具栏或选单中,单击工具栏或选单中,单击“ “更改所选内容更改所选内容” ”按钮,按钮, 在在“ “命名命名” ”框中输入一个易于记忆的名字,按下框中输入一个易于记忆的名字,按下 回车键,按回车键,按“ “关闭关闭” ”按钮开始录制宏。按钮开始录制宏。 * 第04讲 宏与自动图文集 13 n n 如果如果要给宏指定快捷键要给宏指定快捷键,请单击,请单击“ “键盘键盘” ”按钮,按钮, 然后单击然后单击“ “命令命令” ”框中正在录制的宏,在框中正在录制的宏,在“ “请按请按 新快捷键新快捷键” ”框中键入所需快捷键,再单击框中键入所需快捷键,再单击“ “指定指定 ” ”按钮,按按钮,按“ “关闭关闭” ”按钮开始录制宏。按钮开始录制宏。 * 第04讲 宏与自动图文集 14 n n 当然对于自动宏来说,加到工具栏或选单中,当然对于自动宏来说,加到工具栏或选单中, 或者指定快捷键并不重要,但对于一般的宏而或者指定快捷键并不重要,但对于一般的宏而 言却是提供简便运行方式的好方法。言却是提供简便运行方式的好方法。 * 第04讲 宏与自动图文集 15 n n 3.3.单击以打开单击以打开“ “文件文件” ”下拉选单列表,然后在选下拉选单列表,然后在选 单中列出的最近使用过的文件列表中,单击第单中列出的最近使用过的文件列表中,单击第 一个文件一个文件( (如图如图2)2)。 n n 如果如果“ “文件文件” ”选单中未列出最近使用过的文件,选单中未列出最近使用过的文件, 请单击请单击“ “工具工具” ”“ “选项选项” ”“ “常规常规” ”“ “列出最近列出最近 所用文件所用文件” ”复选框,然后在复选框,然后在“ “个个” ”框中输入需要框中输入需要 在在“ “文件文件” ”选单中显示最近用过的文档的个数,选单中显示最近用过的文档的个数, 单击单击“ “确定确定” ”按钮。按钮。 * 第04讲 宏与自动图文集 16 * 第04讲 宏与自动图文集 17 n n 4.4.指向指向“ “工具工具” ”“ “宏宏” ”,单击,单击“ “停止录制停止录制” ”命令,命令, 或者单击录制宏工具栏中的或者单击录制宏工具栏中的“ “停止录制停止录制” ”按钮。按钮。 * 第04讲 宏与自动图文集 18 n n 这之后,只要启动这之后,只要启动WordWord,则系统会自动打开,则系统会自动打开 上次退出上次退出WordWord时最后编辑的文档,但插入点时最后编辑的文档,但插入点 并没有移到上次关闭该文档时插入点所在的位并没有移到上次关闭该文档时插入点所在的位 置。置。 * 第04讲 宏与自动图文集 19 n n 我们应再创建一个我们应再创建一个AutoOpenAutoOpen宏,并赋予该宏宏,并赋予该宏 插入点移到上一编辑处的功能。插入点移到上一编辑处的功能。 n n 宏的录制过程是:宏的录制过程是: n n 重复上述重复上述1 1、2 2步骤,不过需要把其中的步骤,不过需要把其中的 “ “AutoExecAutoExec” ”改为改为“ “AutoOpenAutoOpen” ”,然后按下,然后按下 Shfit+F5Shfit+F5组合键,该组合键的作用就是把插组合键,该组合键的作用就是把插 入点移到上一编辑位。最后,单击录制宏工具入点移到上一编辑位。最后,单击录制宏工具 栏中的栏中的“ “停止录制停止录制” ”按钮,以结束宏录制工作。按钮,以结束宏录制工作。 * 第04讲 宏与自动图文集 20 4.编辑宏 n n 实际上,如果实际上,如果WordWord文档中已存在文档中已存在AutoExecAutoExec 或或AutoOpenAutoOpen宏,在不想以新录制的宏替换原宏,在不想以新录制的宏替换原 有宏的情况下,我们只需对原有的这两个宏进有宏的情况下,我们只需对原有的这两个宏进 行编辑,在宏中增加相应的指令即可。行编辑,在宏中增加相应的指令即可。 n n 编辑编辑AutoExecAutoExec宏的方法是:单击宏的方法是:单击“ “工具工具” ”“ “宏宏 ” ”,在,在“ “宏的位置宏的位置” ”下拉列表框中,选择下拉列表框中,选择“ “所有的所有的 活动模板和文档活动模板和文档” ”;在;在“ “宏名宏名” ”列表框中,单击列表框中,单击 “ “AutoExecAutoExec” ”宏,然后单击宏,然后单击“ “编辑编辑” ”按钮,打开按钮,打开 “ “MicrosoftVisualBasicMicrosoftVisualBasic” ”编辑窗口。编辑窗口。 * 第04讲 宏与自动图文集 21 n n 在在“ “代码窗口代码窗口” ”,于,于AutonewAutonew宏中,加入如下指令宏中,加入如下指令 : n n RecentFiles(1).OpenRecentFiles(1).Open n n 同理,也可在同理,也可在AutoOpenAutoOpen宏中,加上如下一行指令宏中,加上如下一行指令 : n n Application.GoBackApplication.GoBack n n 单击单击“ “文件文件” ”“ “保存保存NormalNormal” ”保存对该宏的修改。保存对该宏的修改。 * 第04讲 宏与自动图文集 22 5.删除宏 n n 单击单击“ “工具工具” ”“ “宏宏” ”,在,在“ “宏的位置宏的位置” ”下拉列表框下拉列表框 中,选择要删除的宏所在的位置,在中,选择要删除的宏所在的位置,在“ “宏名宏名” ”列列 表框中,单击要删除的宏,然后单击表框中,单击要删除的宏,然后单击“ “删除删除” ”按按 钮。系统弹出一个对话框,询问钮。系统弹出一个对话框,询问“ “是否删除宏是否删除宏 ?” ”,单击,单击“ “是是” ”按钮,则选中的宏被删除按钮,则选中的宏被删除 。 * 第04讲 宏与自动图文集 23 例一:利用宏自动删除回车符和空行 n n 对于网上的一些资料,直接通过复制、粘贴到对于网上的一些资料,直接通过复制、粘贴到 WordWord文档中,这时会发现有很多空格和人工文档中,这时会发现有很多空格和人工 分行符,手工删除十分麻烦。那么可以通过在分行符,手工删除十分麻烦。那么可以通过在 WordWord中录制宏,通过宏操作,删除所有空格中录制宏,通过宏操作,删除所有空格 和人工分行符,并进行重新排版。和人工分行符,并进行重新排版。 * 第04讲 宏与自动图文集 24 1)录制你自己的宏 n n (1)(1)运行运行WordWord,并新建一个文件。打开,并新建一个文件。打开“ “工具工具” ” 菜单栏,选择菜单栏,选择“ “宏宏” ”,在二级菜单中选择,在二级菜单中选择“ “录制录制 新宏新宏” ”。 n n (2)(2)出现出现“ “录制宏录制宏” ”对话框,随便为宏取个名按对话框,随便为宏取个名按“ “ 确定确定” ”即可,这时会出现一个悬浮的即可,这时会出现一个悬浮的“ “停止录停止录” ” 工具,宏录制就已经开始了。工具,宏录制就已经开始了。 n n (3)(3)打开打开“ “编辑编辑” ”菜单栏,选择菜单栏,选择“ “替换替换” ”,出现,出现“ “查查 找和替换找和替换” ”对话框。对话框。 * 第04讲 宏与自动图文集 25 n n (4)(4)用鼠标在用鼠标在“ “查找内容查找内容” ”栏内点一下,再点击栏内点一下,再点击“ “ 高级高级” ”,再按,再按“ “特殊字符特殊字符” ”,选择两次,选择两次“ “手动换行手动换行 符符” ”,在,在“ “替换为替换为” ”栏内选栏内选“ “特殊字符特殊字符” ”的的“ “段落标段落标 志志” ”,再选全部替换,点击,再选全部替换,点击“ “确定确定” ”。 n n 在在“ “查找内容查找内容” ”栏内,选栏内,选“ “高级高级” ”,再按,再按“ “特殊字特殊字 符符” ”,选择一次,选择一次“ “手动换行符手动换行符” ”,用鼠标在,用鼠标在“ “替换替换 为为” ”栏内点一下。删除里面的全部内容,什么栏内点一下。删除里面的全部内容,什么 都不输入,再点都不输入,再点“ “全部替换全部替换” ”,点击,点击“ “确定确定” ”。( ( 先保留段落标志,再将段内的人工分行符清除先保留段落标志,再将段内的人工分行符清除 ) ) * 第04讲 宏与自动图文集 26 n n (5)(5)紧接着,用鼠标在紧接着,用鼠标在“ “查找内容查找内容” ”栏内点一下栏内点一下 ,输入一个空格。用鼠标在,输入一个空格。用鼠标在“ “替换为替换为” ”栏中点一栏中点一 下,删除里面的全部内容,什么都不输入。再下,删除里面的全部内容,什么都不输入。再 点击点击“ “全部替换全部替换” ”,点击,点击“ “确定确定” ”。( (删除所有的删除所有的 空格空格) ) * 第04讲 宏与自动图文集 27 n n (6)(6)关闭关闭“ “替换替换” ”对话框,在对话框,在“ “编辑编辑” ”菜单栏中选菜单栏中选“ “ 全选全选” ”,再在,再在“ “格式格式” ”中选中选“ “段落段落” ”,打开,打开“ “段落段落” ” 对话框,在对话框,在“ “缩进和间距缩进和间距” ”的的“ “特殊格式特殊格式” ”选选“ “首首 行缩进行缩进” ”,“ “度量值度量值” ”为两个字符。在字体中选为两个字符。在字体中选“ “ 宋体宋体” ”、字号中选、字号中选“ “小四号字小四号字” ”。这一步骤是设。这一步骤是设 置字体、字号和进行排版。置字体、字号和进行排版。 n n (7)(7)在悬浮的在悬浮的“ “停止录停止录” ”工具条上按工具条上按“ “停止停止” ”钮,钮, 到此宏录制的工作结束。到此宏录制的工作结束。 * 第04讲 宏与自动图文集 28 n n 2.2.制作自定义快捷按钮制作自定义快捷按钮 n n (1)(1)打开打开“ “工具工具” ”菜单栏,选择菜单栏,选择“ “自定义自定义” ”。出现。出现“ “ 自定义自定义” ”对话框,点击对话框,点击“ “命令命令” ”选项。在选项。在“ “类别类别” ” 栏内找到栏内找到“ “宏宏” ”,选中它,然后再选中,选中它,然后再选中“ “命令命令” ”栏栏 中刚刚录制的宏。中刚刚录制的宏。 n n (2)(2)按住鼠标左键,将它拖放到工具栏上可以按住鼠标左键,将它拖放到工具栏上可以 放置的位置,松开左键。这时在工具栏上就增放置的位置,松开左键。这时在工具栏上就增 加了这一刚刚录制的宏按钮。加了这一刚刚录制的宏按钮。 * 第04讲 宏与自动图文集 29 n n (3)(3)不要关闭不要关闭“ “自定义自定义” ”对话框,在对话框,在“ “更改所选内更改所选内 容容” ”上选上选“ “更改按钮图标更改按钮图标” ”,从出现的图标中选,从出现的图标中选 中一个自己喜欢的图标。再在中一个自己喜欢的图标。再在“ “更改所选内容更改所选内容” ” 选选“ “默认样式默认样式” ”,关闭,关闭“ “自定义自定义” ”对话框,这样就对话框,这样就 形成一个和形成一个和WordWord工具栏其他快捷按钮一样的工具栏其他快捷按钮一样的 自定义按钮。以后只要打开自定义按钮。以后只要打开WordWord就能处理文就能处理文 本,把网上复制的内容粘贴到本,把网上复制的内容粘贴到WordWord上,然后上,然后 按下自定义的宏按钮,全部搞定。按下自定义的宏按钮,全部搞定。 * 第04讲 宏与自动图文集 30 例二:编写Word宏轻松将全角数字转换为半角 n n 如果我们需要把如果我们需要把WordWord文档中的全角数字全部文档中的全角数字全部 改为半角数字,手头又没有合适的转换软件,改为半角数字,手头又没有合适的转换软件, 应该怎么做呢?应该怎么做呢? n n 除了用第除了用第0101讲中介绍的方法外,也可以编制一讲中介绍的方法外,也可以编制一 个个“ “宏宏” ”来自动处理。来自动处理。 n n 1.1.执行执行“ “工具工具” ”“ “宏宏” ”“ “录制新宏录制新宏” ”,在,在“ “宏宏 名名” ”框中输入框中输入“ “数字全角转半角数字全角转半角” ”,确定,将出,确定,将出 现一个现一个“ “录制宏录制宏” ”工具栏,关闭。工具栏,关闭。 * 第04讲 宏与自动图文集 31 n n 2.2.执行执行“ “工具工具” ”“ “宏宏” ”“ “宏宏” ”,选择,选择“ “数字全数字全 角转半角角转半角” ”,单击,单击“ “编辑编辑” ”按钮,打开按钮,打开vbavba编辑窗编辑窗 口,录入代码结果如下口,录入代码结果如下: : Sub Sub 数字全角转半角数字全角转半角()() 使用前需先选中要替换的区域使用前需先选中要替换的区域 Dim Dim qjszqjsz, , bjszbjsz As String, i As Integer As String, i As Integer 定义定义qjszqjsz( (全角数字全角数字) )、bjszbjsz( (半角数字半角数字) )为字为字 符串型,符串型,i i为整数型为整数型 qjszqjsz = “ = “ “ * 第04讲 宏与自动图文集 32 bjszbjsz = “0123456789“ = “0123456789“ For i = 1 To 10 For i = 1 To 10 循环循环1010次次 With With Selection.FindSelection.Find .Text = .Text = Mid(qjszMid(qjsz, i, 1) mid, i, 1) mid函数:返回文函数:返回文 本字符串中从指定位置开始的特定数目的字本字符串中从指定位置开始的特定数目的字 符,每次取一个数字符,每次取一个数字 . .Replacement.TextReplacement.Text = = Mid(bjszMid(bjsz, i, 1) , i, 1) 将用于替换的相应位置的半角数字将用于替换的相应位置的半角数字 .Format = False .Format = False 保留替换前的字符格式保留替换前的字符格式 * 第04讲 宏与自动图文集 33 .Execute Replace:= .Execute Replace:=wdReplaceAllwdReplaceAll 用用 半角数字替换全角数字半角数字替换全角数字 End WithEnd With Next i Next i End Sub End Sub n n 3.3.关闭关闭vbavba编辑窗口,选中要改变数字格式的编辑窗口,选中要改变数字格式的 文字区域,执行文字区域,执行“ “工具工具” ”“ “宏宏” ”“ “宏宏” ”“ “数数 字全角转半角字全角转半角” ”。 * 第04讲 宏与自动图文集 34 例三:中英文标点互换 n目标:将文档中的英文标点一次性转换为对应的 中文标点,或者将文档中的中文标点一次性转换 为对应的英文标点。 n代码: nSub ToggleInterpunction() n中英文标点互换 n Dim ChineseInterpunction() As Variant, EnglishInterpunction() As Variant n Dim myArray1() As Variant, myArray2() As Variant, strFind As String, strRep As String n Dim msgResult As VbMsgBoxResult, N As Byte n 定义一个中文标点的数组对象 * 第04讲 宏与自动图文集 35 nChineseInterpunction = Array(“。“, “,“, “;“, “:“, “?“, “! “, “, “-“, “, “(“, “)“, “, “) n 定义一个英文标点的数组对象 n EnglishInterpunction = Array(“.“, “,“, “;“, “:“, “?“, “!“, “, “-“, “, “(“, “)“, “) n 提示用户交互的MSGBOX对话框 nmsgResult = MsgBox(“您想中英标点互换吗?按 Y将中文标点转为英文标点,按N将英文标点转为中 文标点!“, _ n vbYesNoCancel) n Select Case msgResult n Case vbCancel n Exit Sub 如果用户选择了“取消”按钮,则退 出程序运行 n Case vbYes 如果用户选择了“是”,则将中文 标点转换为英文标点 * 第04讲 宏与自动图文集 36 nmyArray1 = ChineseInterpunction n myArray2 = EnglishInterpunction n strFind = “(*)”“ n strRep = “1“ nCase vbNo 如果用户选择了“否”,则将英 文标点转换为中文标点 n myArray1 = EnglishInterpunction n myArray2 = ChineseInterpunction n strFind = “(*)“ n strRep = “1”“ n End Select n Application.ScreenUpdating = False 关闭屏幕更新 n For N = 0 To UBound(ChineseInterpunction) 从数 组的下标到上标间作一个循环 n With ActiveDocument.Content.Find n .ClearFormatting 不限定查找格式 n .MatchWildcards = False 不使用通配符 n 查找相应的英文标点,替换为对应的中文标点 n .Execute findtext:=myArray1(N), * 第04讲 宏与自动图文集 37 nreplacewith:=myArray2(N), Replace:=wdReplaceAll n End With n Next n With ActiveDocument.Content.Find n .ClearFormatting 不限定查找格式 n .MatchWildcards = True 使用通配符 n .Execute findtext:=strFind, replacewith:=strRep, Replace:=wdReplaceAll n End With n Application.ScreenUpdating = True 恢复 屏幕更新 nEnd Sub n例题文件:中英标点互换.doc * 第04讲 宏与自动图文集 38 例四:让ord开口说话 n n 目标:目标: n n 当每次启动当每次启动WordWord时将自动弹出一窗口时将自动弹出一窗口, ,随机地随机地 显示一条笑话。显示一条笑话。 n n “ “WordWord讲笑话讲笑话” ”的面板中一共有三个按钮,点的面板中一共有三个按钮,点 击击“ “下一条下一条” ”可继续阅读其它笑话,点击可继续阅读其它笑话,点击“ “关于关于” ” 可显示作者和帮助信息,点击可显示作者和帮助信息,点击“ “关闭关闭” ”将关闭窗将关闭窗 口。面板中还有一个复选框,可以让用户自由口。面板中还有一个复选框,可以让用户自由 决定下次启动决定下次启动WordWord时是否显示笑话。时是否显示笑话。 * 第04讲 宏与自动图文集 39 1.建立窗体 n n 窗体是窗口和对话框的统称,它是窗体是窗口和对话框的统称,它是WindowsWindows 应用程序的用户界面的基础部分。窗体是控件应用程序的用户界面的基础部分。窗体是控件 的容器,用来放置文本框、命令按钮、复选框的容器,用来放置文本框、命令按钮、复选框 等各种控件。等各种控件。 n n (1 1)启动)启动WordWord,单击菜单,单击菜单“ “工具工具宏宏 Visual BasicVisual Basic编辑器编辑器” ”,也可以按快捷键,也可以按快捷键 Alt+F11Alt+F11,切换到,切换到Visual BasicVisual Basic编辑器窗口编辑器窗口 。 * 第04讲 宏与自动图文集 40 n n (2 2)单击菜单)单击菜单“ “插入插入用户窗体用户窗体” ”,系统建立,系统建立 一个默认样式的用户窗体。对窗体可拖动其右一个默认样式的用户窗体。对窗体可拖动其右 、下边的小方框来可改变大小,本例中根据功、下边的小方框来可改变大小,本例中根据功 能需要将窗体拖为扁长形状。能需要将窗体拖为扁长形状。 n n (3 3)单击菜单)单击菜单“ “视图视图属性窗口属性窗口” ”,在属性窗,在属性窗 口中修改窗体的几个主要属性值。在属性列表口中修改窗体的几个主要属性值。在属性列表 中选定中选定“ “名称名称” ”属性,输入属性,输入“ “XiaohuaXiaohua” ”,然后选,然后选 定定“ “CaptionCaption” ”属性,输入属性,输入“ “开心一刻开心一刻” ”。现在,。现在, 我们便能看到一个标题为我们便能看到一个标题为“ “开心一刻开心一刻” ”的窗体了的窗体了 。 * 第04讲 宏与自动图文集 41 n n 提示:提示:窗体中的点状物称为窗体中的点状物称为“ “网格网格” ”,它能在建立控件时起位置参考和,它能在建立控件时起位置参考和 智能对齐的作用,单击菜单智能对齐的作用,单击菜单“ “工具工具选项选项” ”,选择,选择“ “通用通用” ”选项卡,可修改选项卡,可修改 网格的选项和网格块的大小,建议使用较小的网格设置,这样能使控网格的选项和网格块的大小,建议使用较小的网格设置,这样能使控 件更靠近窗体边缘的位置,以达到美观的效果。件更靠近窗体边缘的位置,以达到美观的效果。 * 第04讲 宏与自动图文集 42 1.建立控件 n n 建立了窗体就相当于打好了地基,下一步的工建立了窗体就相当于打好了地基,下一步的工 作就是作就是建立控件建立控件。常用控件包括。常用控件包括文本框文本框、命令命令 按钮、标签、复选框、滚动条按钮、标签、复选框、滚动条等。等。 n n 建立控件的方法很简单,单击菜单建立控件的方法很简单,单击菜单“ “视图视图工工 具箱具箱” ”调出工具箱,在调出工具箱,在“ “工具箱工具箱” ”中选择控件类中选择控件类 型,然后在窗体上单击或拖动即可。型,然后在窗体上单击或拖动即可。 * 第04讲 宏与自动图文集 43 * 第04讲 宏与自动图文集 44 n n 1 1、创建文本框:在、创建文本框:在“ “工具箱工具箱” ”中选择中选择“ “AB|AB|” ”样样 式的按钮,在窗体上拖动建立一个文本框,并式的按钮,在窗体上拖动建立一个文本框,并 用鼠标调整其位置、大小,若需精确调整,也用鼠标调整其位置、大小,若需精确调整,也 可在属性窗口中调整可在属性窗口中调整“ “HeightHeight” ”、“ “WidthWidth” ”等属等属 性值。很关键的一点是要将性值。很关键的一点是要将“ “MultiLineMultiLine” ”属性属性 值设为值设为“ “TrueTrue” ”,它的作用是使文本框能显示多,它的作用是使文本框能显示多 行文本。行文本。 n n 2 2、创建命令按钮:在、创建命令按钮:在“ “工具箱工具箱” ”中选择命令按中选择命令按 钮(鼠标悬停会显示钮(鼠标悬停会显示“ “命令按钮命令按钮” ”字样),在窗字样),在窗 体上的文本框右边拖动建立一个命令按钮,调体上的文本框右边拖动建立一个命令按钮,调 整好大小并修改其整好大小并修改其“ “CaptionCaption” ”属性值为属性值为“ “下一条下一条 ” ”,接着依次建立,接着依次建立“ “关闭关闭” ”、“ “关于关于” ”按钮。按钮。 * 第04讲 宏与自动图文集 45 n n 3 3、创建复选框:在、创建复选框:在“ “工具箱工具箱” ”中选择复选框按中选择复选框按 钮,在窗体上的文本框下方单击鼠标左键,便钮,在窗体上的文本框下方单击鼠标左键,便 创建了一个复选框,修改其创建了一个复选框,修改其“ “CaptionCaption” ”属性值属性值 为为“ “下次启动时不显示下次启动时不显示” ”。 n n 4 4、创建标签:可在窗体的空余部分以、创建标签:可在窗体的空余部分以“ “标签标签” ” 的形式显示作者等信息。的形式显示作者等信息。 n n 提示:提示:为了使窗体、控件看起来更美观、协调为了使窗体、控件看起来更美观、协调 ,可以使用,可以使用“ “格式格式” ”菜单下的菜单下的“ “统一尺寸统一尺寸” ”命令项命令项 使按钮大小相同,使用使按钮大小相同,使用“ “对齐对齐” ”、“ “水平间距水平间距” ”、 “ “垂直间距垂直间距” ”等命令项,使各控件均匀、合理的等命令项,使各控件均匀、合理的 布置在窗体中。布置在窗体中。 * 第04讲 宏与自动图文集 46 3.编写代码 n n 上面建立的窗体和控件还只是上面建立的窗体和控件还只是“ “徒有其表徒有其表” ”,因,因 为还没有为各个控件赋予具体的功能,接下来为还没有为各个控件赋予具体的功能,接下来 就需要编写就需要编写VBAVBA代码代码 ,通过代码告诉各控件在,通过代码告诉各控件在 什么情况下该执行什么任务。什么情况下该执行什么任务。 n n 编写代码的方法是:单击菜单编写代码的方法是:单击菜单“ “视图视图代码代码” ”或或 按按F7F7键,即切换到代码窗口,可在代码窗口的键,即切换到代码窗口,可在代码窗口的 声明部分(顶端空白区域)开始录入代码。声明部分(顶端空白区域)开始录入代码。 * 第04讲 宏与自动图文集 47 * 第04讲 宏与自动图文集 48 n n Sub Sub 显示笑话显示笑话()() n n Dim line$(500) Dim line$(500) 定义笑话文件的最大行数定义笑话文件的最大行数 n n Open “ Open “d d:xiaohua.d:xiaohua.d2 2“ For Input As #1 “ For Input As #1 打开笑话文件打开笑话文件 n n Do While Not EOF(1) Do While Not EOF(1) n n N = N + 1 N = N + 1 n n Input #1, Input #1, line$(Nline$(N) ) 读入笑话内容到变量读入笑话内容到变量 n n Loop Loop n n Close #1 Close #1 n n Randomize Randomize n n num = num = Int(NInt(N * * RndRnd + 1) + 1) 产生随机数产生随机数 n n Do While Do While line$(numline$(num) = “ ) = “ 识别并忽略空行识别并忽略空行 n n num = num = numnum + 1 + 1 n n If num = N + 1 Then num = 1 If num = N + 1 Then num = 1 n n Loop Loop n n TextBox1.Text = “ “ & TextBox1.Text = “ “ & line$(numline$(num) ) 显示笑话内容显示笑话内容 n n End SubEnd Sub * 第04讲 宏与自动图文集 49 n n Sub Sub 结束结束()() n n Open “d:xiaohua.d1“ For Output As #1 Open “d:xiaohua.d1“ For Output As #1 n n If CheckBox1.Value = True Then If CheckBox1.Value = True Then 结束前检查是结束前检查是 否选中复选框否选中复选框 n n Print #1, “no“ Print #1, “no“ 若选中则写入判断因子若选中则写入判断因子“ “nono” ” n n Else: Print #1, “yes“ Else: Print #1, “yes“ 未选中则写入判断因子未选中则写入判断因子“ “yesyes” ” n n End If End If n n Close #1 Close #1 n n End End 关闭窗体关闭窗体 n n End SubEnd Sub * 第04讲 宏与自动图文集 50 n n 提示:提示: n n (1 1)上面的笑话文件)上面的笑话文件d d:xiaohua.d2:xiaohua.d2是一个是一个 纯文本文件,需事先用记事本录入保存,在录纯文本文件,需事先用记事本录入保存,在录 入或维护时要求每条笑话独占一行(不回车换入或维护时要求每条笑话独占一行(不回车换 行),两条笑话之间可插入一个或多个空行,行),两条笑话之间可插入一个或多个空行, 笑话文件的总行数不能超过定义的最大行数。笑话文件的总行数不能超过定义的最大行数。 n n (2 2)文件)文件d d:xiaohua.d1:xiaohua.d1也是一个纯文本文也是一个纯文本文 件,其作用是被用来放置判断因子,后续步骤件,其作用是被用来放置判断因子,后续步骤 中的宏代码将根据此文件中的判断因子来决定中的宏代码将根据此文件中的判断因子来决定 是否在启动是否在启动WordWord时显示笑话。此文件不需手时显示笑话。此文件不需手 工建立,由程序自动生成。工建立,由程序自动生成。 * 第04讲 宏与自动图文集 51 n n 接下来要编写进入、离开窗体时、单击接下来要编写进入、离开窗体时、单击“ “下一下一 条条” ”、“ “关闭关闭” ”等按钮时的事件过程,当发生事等按钮时的事件过程,当发生事 件时将调用公用的件时将调用公用的SubSub过程来执行功能。代码过程来执行功能。代码 如下:如下: * 第04讲 宏与自动图文集 52 n n Private Sub CommandButton1_Click()Private Sub CommandButton1_Click() n n 显示笑话显示笑话 n n End SubEnd Sub n n Private Sub CommandButton2_Click()Private Sub CommandButton2_Click() n n 结束结束 n n End SubEnd Sub n n Private Sub Private Sub userform_activateuserform_activate() () 激活窗体,使得初始运行激活窗体,使得初始运行 时窗口中即显示内容时窗口中即显示内容 n n 显示笑话显示笑话 n n End SubEnd Sub n n Private Sub Private Sub UserForm_QueryClose(CancelUserForm_QueryClose(Cancel As Integer, As Integer, CloseModeCloseMode As Integer) As Integer) 通过其它途径关闭窗体时结束通过其它途径关闭窗体时结束 n n 结束结束 n n End SubEnd Sub n n Private Sub CommandButton3_Click()Private Sub CommandButton3_Click() n n MsgBoxMsgBox “ “WORDWORD讲笑话讲笑话由徐州师范大学管理学院编由徐州师范大学管理学院编 2006.10“2006.10“ n n End SubEnd Sub * 第04讲 宏与自动图文集 53 n n 提示:提示:这一部分代码可以紧接第一部代分码连这一部分代码可以紧接第一部代分码连 续录入,也可在代码窗口的续录入,也可在代码窗口的“ “对象框对象框” ”、“ “过程过程/ / 事件框事件框” ”中分别选择对象和事件,然后在自动中分别选择对象和事件,然后在自动 给出的给出的Private SubPrivate Sub与与SubSub之间输入要调用的之间输入要调用的 SubSub过程名,这样减轻了录入量,并减少了出过程名,这样减轻了录入量,并减少了出 错的可能性。错的可能性。 * 第04讲 宏与自动图文集 54 4.完善功能 n n 完成上面三步便初具规模了,窗体已经能够运完成上面三步便初具规模了,窗体已经能够运 行,但复选框的作用还不能发挥出来。接下来行,但复选框的作用还不能发挥出来。接下来 通过创建宏来完善窗体功能。通过创建宏来完善窗体功能。 n n 创建宏的方法是:单击菜单创建宏的方法是:单击菜单“ “工具工具宏宏” ”,在,在“ “ 宏名宏名” ”文本框中输入宏名文本框中输入宏名“ “AutoexecAutoexec” ”,接着单,接着单 击击“ “创建创建” ”,录入完成以下代码:,录入完成以下代码: * 第04讲 宏与自动图文集 55 Sub Autoexec()Sub Autoexec() autoexec Macro autoexec Macro 宏在宏在 2006-9-24 2006-9-24 由由 宋庆军宋庆军 录制录制 On Error On Error GoToGoTo err err 出错处理出错处理 Open “d:xiaohua.d1“ For Input As #1 Open “d:xiaohua.d1“ For Input As #1 Input #1, Ask$ Input #1, Ask$ 读取判断因子读取判断因子 Close #1Close #1 If Ask$ = “yes“ Then If Ask$ = “yes“ Then Xiaohua.ShowXiaohua.Show 若判断因子若判断因子 为为yesyes则运行则运行xiaohuaxiaohua窗体窗体 err:err: End Sub End Sub Sub Sub 笑话笑话()() Xiaohua.ShowXiaohua.Show xiaohuaxiaohua为第一步中建立的窗体名称为第一步中建立的窗体名称 End SubEnd Sub * 第04讲 宏与自动图文集 56 n n 录入完毕后关闭录入完毕后关闭Visual BasicVisual Basic窗口返回到窗口返回到WordWord 。以上代码创建两个宏,。以上代码创建两个宏,AutoexecAutoexec宏是一个自宏是一个自 动宏,它在动宏,它在WordWord启动时自动运行,并根据读取启动时自动运行,并根据读取 的判断因子来决定是否运行窗体。名为的判断因子来决定是否运行窗体。名为“ “笑话笑话” ”的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论