VBA应用案例教程第一章Word格式文档下载.docx
- 文档编号:21332488
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:18
- 大小:25.69KB
VBA应用案例教程第一章Word格式文档下载.docx
《VBA应用案例教程第一章Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VBA应用案例教程第一章Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
①录制
②改编
四、指定宏保存的位置
Excel:
当前工作簿、新工作簿、个人宏工作簿。
◆保存在当前工作簿或新工作簿——只有该工作簿打开时,相应的宏才可以用。
◆保存在个人宏工作簿——在当前机器上多个工作簿都能使用。
Word:
Normal模板、当前文档中。
◆保存在当前文档——只有该文档打开时,相应的宏才可以用。
◆保存在Normal模板——在当前机器上都能使用。
五、为宏指定快捷键
1.创建宏时指定快捷键
2.录制宏后指定快捷键
②选择宏
③单击“选项”按钮
【例1.1】利用Word宏快速录入上角标。
六、将宏指定给按钮
①在Excel中打开“窗体”工具栏(Word的窗体工具栏没有“按钮”)
②在工作表添加按钮
③为它指定宏
④按钮属性设置——右击
七、将宏指定给图片或工具栏按钮
1.指定宏到图片
①用“插入|图片”菜单工作表中放置图片
②右击图片,在快捷菜单中选“指定宏”
2.指定给“工具栏按钮”
①选择“工具|自定义”菜单。
②在“命令”卡中,从“类别”列表框中选择“宏”,从“命令”列表框中将“自定义按钮”拖动到任意一个工具栏上。
③右击该按钮,选择“指定宏”。
④选择需要的宏名并单击“确定”按钮。
⑤单击“关闭”按钮。
3.从工具栏中删除自定义按钮
①选择“工具|自定义”菜单
②用鼠标将按钮从工具栏中拖出
4.创建新的工具栏
①在“自定义”对话框的“工具栏”卡中,单击“新建”按钮。
②输入工具栏名,单击“确定”按钮。
范例1-1在Word当前文档中插入多个文件的内容
1.要求
将从中央电视台网站下载的1至8套节目时间表合并到一个文档中,并进行格式控制。
2.实现步骤
①语句、函数的选用和程序初稿的形成
录制宏——设置3号字、居中,输入“中央1套”,回车。
设置5号字,两端对齐”。
插入文件(01.txt)。
②加工初稿得到需要的程序
设置路径
循环
使用变量
③运行程序。
定义快捷健、工具栏。
范例1-2设计一个名片制作模板
1.页面及图文框设置
进入Word,在“页面设置”对话框中设置“纸张”宽度和高度分别为19.5厘米和29.5厘米,“页边距”上、下、左、右边距均为0.7厘米。
“插入”→“文本框|横排”
将“文本框”转换为“图文框”
设置图文框固定宽度、高度值分别为8.6厘米和5.4厘米,无边框。
2.定义“复制排版”工具按钮并进行宏录制
在“录制新宏”对话框中:
①指定一个宏名“复制排版”。
②指定将宏保存在当前文档。
③新建工具栏“名片”,将宏“Project.NewMacros.复制排版”拖动到新建工具栏。
改名为“复制排版”。
进行宏录制:
按Ctrl+X,剪切选定的图文框。
然后按十次Ctrl+V快捷键,将图文框粘贴十份。
按Alt+↑键,选中一个图文框,设置水平位置为“左侧”,相对于“页边距”。
设置垂直位置为“底端”,相对于“页边距”。
再按Alt+↑键,选中下一个图文框,用类似的方式设置水平位置为“右侧”,相对于“页边距”。
垂直位置为“底端”,相对于“页边距”,停止宏录制。
3.对代码进行加工和优化
去掉一些用于进行默认设置的不必要语句,添加循环语句,得到“复制排版”子程序。
4.使用方法
①直接用鼠标双击“名片模板”或进入Word2003后,打开“名片模板”。
②在图文框中输入名片的具体内容、设置字体字号、进行排版,也可以插入图片和进行艺术加工,设计出一张名片样板。
③选中名片样板图文框。
④单击“名片”工具栏上的“复制排版”按钮,Word便自动将设计好的名片样板复制10份并均匀地排列在整张名片纸上。
⑤用“文件”菜单中的“打印”命令将整联名片打印输出。
1.3VBA语法基础
一、注释、连写和断行
两种注释方式:
(1)使用Rem语句。
(2)用单引号('
)号。
连写:
在一行写几个语句,用“:
”分隔。
断行:
一个语句分开写成几行,用空白加下划线(_)。
二、变量和常量
1.常用的变量数据类型
数据类型
存储空间
数值范围
Boolean(布尔)
2字节
True或False
Integer(整型)
-32768~32767
Long(长整型)
4字节
-2147483648~2147483647
Single(单精度)
负值范围:
-3.402823E38~-1.401298E-45
正值范围:
1.401298E-45~3.402823E38
Double(双精度)
8字节
-1.79769313486232E308~-4.94065645841247E-324
4.94065645841247E-324~1.79769313486232E308
Date(日期时间)
日期:
100年1月1日~9999年12月31日
时间:
00:
00~23:
59:
59
Object(对象)
任何引用对象
String(字符串)
字符串
的长度
变长字符串:
0~20亿个字符
定长字符串:
1~64K个字符
2.声明变量
变量可以不经声明直接使用,但占用存储空间较大,效率较低。
Dim语句声明局部变量——声明语句放到过程中,变量在过程内有效;
声明语句放到模块的声明部分,变量在模块中有效。
Public语句用来声明公共变量。
公共变量可用于工程中的任何过程。
3.声明数组
通常用Dim或Public语句来声明。
默认的下标下限是0,用OptionBase语句可设置为1。
例:
DimMyArray(10,10)AsInteger
声明了一个11行乘以11列的Integer型二维数组。
DimsngArray()AsSingle
声明的是一个动态数组。
4.常量
声明常量用const语句。
ConstPIAsSingle=3.1415926
PublicConstEAsSingle=2.7182
三、运算符
1.算术运算符
符号
作用
示例
+
加法
3+5=8
-
减法、一元减
11-6=5、-6*3=-18
*
乘法
6*3=18
/
除法
10/4=2.5
\
整除
19\6=3
mod
取模
19mod6=1
^
指数
3^2=9
2.比较运算符
名称
用法
<
小于
〈表达式1〉<
〈表达式2〉
=
小于或等于
=〈表达式2〉
>
大于
〈表达式1〉>
大于或等于
等于
〈表达式1〉=〈表达式2〉
不等于
Is
同引用
〈对象1〉Is〈对象2〉
Like
匹配于
〈字符串1〉Like〈字符串2〉
Is运算符用来比较两个对象引用。
如果两者引用的对象相同,结果为True,否则为False。
假如MyObject、OtherObject是两个不同的对象,执行语句
SetYourObject=MyObject
SetThisObject=MyObject
SetThatObject=OtherObject
MyCheck1=YourObjectIsThisObject
MyCheck2=ThatObjectIsThisObject
后,MyCheck1返回True,MyCheck2返回False。
Like运算符做字符串的方式比较。
如果字符串1与字符串2匹配,则返回True,否则返回False。
可以使用通配符、字符串列表或字符区间的任何组合匹配字符串。
通配符:
“?
”代表任意一个字符
“*”代表任意多个字符
“#”代表任何一个数字(0~9)
“[charlist]”代表charlist中任何一个字符
“[!
charlist]”代表任何一个不在charlist中的字符
例如:
MyCheck="
aBBBa"
Like"
a*a"
'
返回True。
F"
[A-Z]"
[!
A-Z]"
返回False。
a2a"
a#a"
aM5b"
a[L-P]#[!
c-e]"
BAT123khg"
B?
T*"
CAT123khg"
3.逻辑运算符
语法
And
与
〈表达式1〉And〈表达式2〉
Or
或
〈表达式1〉Or〈表达式2〉
Not
非
Not〈表达式〉
Xor
异或
〈表达式1〉Xor〈表达式2〉
Eqv
等价(同或)
〈表达式1〉Eqv〈表达式2〉
Imp
蕴涵(条件)
〈表达式1〉Imp〈表达式2〉
其中:
P等价Q,当P和Q的真值相同时,结果为真,否则为假。
P蕴含Q,当P为真Q为假时,结果为假,否则为真。
4.连接运算符
“+”——既可计算数值的和,也可以做字符串的连接。
”——字符串连接。
MyStr="
Check"
&
123'
返回"
Check123"
。
MyNumber="
34"
+6'
返回40。
+"
6"
346"
(字符串被串接起来)。
5.运算符的优先级
由高到低次序如下:
括号→指数→一元减→乘法和除法→整除→取模→加法和减法→连接→比较→逻辑(Not、And、Or、Xor、Eqv、Imp)。
【例1.4】百钱买百鸡问题
假设公鸡每只5元,母鸡每只3元,小鸡3只1元。
要求用100元钱买100只鸡,问公鸡、母鸡、小鸡可各买多少只?
请编一个VBA程序求解。
设公鸡、母鸡、小鸡数分别为x、y、z,则可列出方程组:
x+y+z=100
5x+3y+z/3=100
这里有三个未知数、两个方程式,说明有多个解。
可以用穷举法求解。
范例1-3用WordVBA查汉字区位码
1.开发背景
2.程序代码
3.自定义工具栏
4.改进——在每个汉字的右边填写对应的区位码
宏录制——获取代码(光标右移、填写文本)
改写代码
范例1-4在Word中快速输入“国标”全部汉字
1、试验——输入一个汉字
①通过录制获得代码——输入汉字。
②修改代码
nm=&
HB0A1
Selection.TypeTextText:
=Chr(nm)
2、编程——输入汉字集
汉字内码高位字节BO(176)~F7(247),低位字节A1(161)~FE(254)
1.4对象、属性、事件和方法
对象——将数据和操作过程结合在一起的数据结构。
如窗体、命令按钮、文本框等都是对象。
属性——对象的特性。
如大小、颜色、状态等。
事件——是一个对象可以辨认的动作。
如单击鼠标或按下某键等。
方法——对象能执行的动作。
如刷新等。
【例1.5】用Excel工作表制作一个会议签到单。
当每个与会人员报道时,在其姓名右边的单元格单击鼠标,自动填入当前日期和时间。
设计要点:
工作表、SelectionChange事件
获取行列号——两种方法(Row、Column;
Address)
填写当前日期、时间——两种方法(Date、Time;
Format)
若删除单元格中输入的内容,可按Del键。
范例2-5在Excel中实现定时提醒。
1.在上午8点45分显示一个提醒信息。
进入Excel的VBA编辑环境,在任意一个模块中定义以下两个宏:
SubRun_it()
Application.OnTimeTimeValue("
8:
45:
00"
),"
Show_my_msg"
EndSub
SubShow_my_msg()
MsgBox"
现在是8点45分,9点钟您有个约会!
"
vbInformation,"
提醒"
2.模仿“自动保存”功能,在打开Excel工作簿后,每10秒钟提醒依次存盘。
利用Excel“工具|宏”菜单的“宏”项,创建以下三个宏:
Subauto_open()
在这篇文档里,每10秒钟出现一次保存提示!
注意"
Callruntimer
Subruntimer()
Application.OnTimeNow+TimeValue("
10"
SaveIt"
SubSaveIt()
msg=MsgBox("
您已经10秒钟没存盘了,现在就存盘吗?
Chr(13)&
Chr(13)_
"
选择是:
立刻存盘"
选择否:
暂不存盘"
选择取消:
不再出现这个提示"
vbYesNoCancel+64,"
)
Ifmsg=vbYesThen
ActiveWorkbook.Save
ElseIfmsg=vbCancelThen
ExitSub
EndIf
1.5过程
一、工程、模块与过程
每个VBA应用程序都存在于一个“工程”中。
工程下面可分为若干个“模块”。
模块包括标准模块、类模块和对象模块三种。
通常,大部分工作集中在标准模块(简称为模块)中。
模块中可以定义若干个“过程”。
过程可以是函数、子程序或属性。
【例1.6】子程序过程
SubcmdSmallFont_Click()
WithSelection.Font
.Name="
Arial"
.FontStyle="
Regular"
.Size=16
EndWith
Endsub
【例1.7】函数过程
下面是一个计算运费的函数过程:
PublicFunctionShipping(Price)
Shipping=Price*0.1
EndFunction
二、过程的创建
【方法1】直接输入代码。
①打开要编写过程的模块。
②键入Sub、Function或Property,分别创建Sub、Function或Property过程。
③在其中键入过程的代码。
【方法2】用“插入过程”对话框。
②在“插入”菜单上选择“过程”项。
③在“插入过程”对话框中的“名称”框键入过程的名称。
选定要创建过程的类型:
Sub、Function或Property。
设置过程的范围为Public或Private。
如果选定“把所有局部变量声明为静态变量”,则在过程的定义中会加上Static关键字。
【例1.8】创建一个显示消息框的过程。
①在Excel中,选择“工具|宏|VisualBasic编辑器”菜单。
②在工具栏上单击“工程资源管理器”按钮,或按Ctrl+R键,在VBA编辑器的左面打开“工程资源管理器”窗口。
③在工程资源管理器窗口的任意位置单击鼠标右键,在快捷菜单中选择“插入|模块”项。
④在VBA编辑器右面的代码窗口中,选择“插入|过程”菜单。
⑤输入“显示消息框”作为过程名字。
在“类型”分组框中,选择“子程序”。
⑥在过程中输入语句,得到下面代码段:
PublicSub显示消息框()
Msgbox"
这是我的第一个过程"
⑦运行一个过程。
使用“运行”菜单的“运行子程序/用户窗体”项,也可以工具栏按钮或F5快捷键。
三、代码的运行与调试
1.运行
【方法1】使用“运行”菜单的“运行子过程/用户窗体”命令。
【方法2】单击工具栏的“运行子过程/用户窗体”按钮。
【方法3】用F5快捷键。
如果要中断执行,可用以下几种方法:
【方法1】选择“运行”菜单中的“中断”命令。
【方法2】用Ctrl+Break快捷键。
【方法3】使用工具栏中的“中断”按钮。
【方法4】选择“运行”菜单中的“重设置”项。
【方法5】使用工具栏中的“重新设置”按钮。
要继续执行,可用以下几种方法:
【方法1】在“运行”菜单中选择“继续”项。
【方法2】按F5键。
【方法3】按ALT+F5键,跳过错误处理程序并继续执行。
【方法4】使用工具栏中的“执行宏”按钮。
【方法5】在“调试”菜单中选择“逐语句”、“逐过程”、“跳出”或“运行到光标处”等命令或使用相应的快捷键F8、SHIFT+F8、CTRL+SHIFT+F8或CTRL+F8。
2.跟踪代码的执行
在“调试”菜单中选定“逐语句”、“逐过程”、“跳出”或“运行到光标处”命令,或使用相应的快捷键F8、Shift+F8、Ctrl+Shift+F8或Ctrl+F8。
在跟踪过程中,只要将鼠标指针移动到任意一个变量名上,就可以看到该变量当时的值。
3.设置与清除断点
将光标定位在需要设置断点的代码行,然后用以下方法可以设置或清除断点:
【方法1】在“调试”菜单中单击“切换断点”。
【方法2】按F9键。
【方法3】在对应代码行的左边界标识条上单击鼠标。
【方法4】使用“调试”工具栏的“切换断点”按钮。
要清除应用程序中的所有断点,可在“调试”菜单中选择“清除所有断点”命令。
四、子程序
语法格式:
[Public|Private]Sub子程序名([<
参数>
])
[<
语句组>
]
[ExitSub]
EndSub
(Public可省略不写)
【例1.9】求矩形面积的子程序。
两个参数L和W,分别表示矩形的长和宽。
Submj(L,W)
DimSAsSingle
IfL=0OrW=0Then
S=L*W
MsgBoxS
调用子程序例:
Callmj(8,9)
【例1.10】在Word中编写一个VBA子程序,输出所有的“玫瑰花数”到当前文档。
玫瑰花数(水仙花数):
三位数,其各位数字立方和等于该数本身。
Sub玫瑰花数()
Forn=100To999
i=n\100
j=n\10-i*10
k=nMod10
If(n=i*i*i+j*j*j+k*k*k)Then
=Format(n,"
@@@@@"
Next
五、自定义函数
语法:
[Public|Private]Function函数名([<
])[As数据类型]
[函数名=<
表达式>
[ExitFunction]
若省略返回值类型说明,系统会自动根据赋值确定。
定义一个求圆面积的函数。
PublicFunctionarea(RAsSingle)AsSingle
area=3.14*R^2
该函数也可简化为:
Functionarea(R)
自定义函数调用方式与系统内部函数相同。
【例1.11】制作一个如图1.10所示的“XX单位党员应交党费清单”。
标准为:
“基础工资”与“基础津贴”之和不超过600元者,按1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 应用 案例 教程 第一章