61阅读

android游戏编程之从零开始-Gamestop在200家零售店推出Android游戏平板

发布时间:2017-11-05 所属栏目:业界

一 : Gamestop在200家零售店推出Android游戏平板

Gamestop在200家零售店推出Android游戏平板

iPad掀起的平板热不仅挠痒了谷歌和微软,也挑逗了北美最大的游戏零售商Gamestop。几个月前,Gamestop表明了它对游戏平板电脑的兴趣。近日,有国外媒体报导称该公司已经推出了印有自家品牌的游戏平板电脑。

没有任何大型发布会或者公告,Gamestop与宏基、华硕和三星联手,于近日悄然推出了“买平板送游戏”捆绑业务,正式推出印有自家品牌的游戏平板电脑。不过这项捆绑业务目前只局限在美国其中的200家零售店。该游戏平板电脑内置了7款游戏,其中包含《死亡空间(Dead Space)》和《疯狂橄榄球(Madden NFL)》。

售价方面,宏基A100为320美元, 华硕Transformer为400美元 ,三星Galaxy Tab 为500美元。不过,无商不奸,Gamestop在免费送游戏的同时也额外出售一款与游戏平板相匹配的手柄,售价未知。

(本文来源:威锋网 )

二 : WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第一讲)

工作中,经常看到许多朋友在使用Office时已经非常地熟练,但仍不敢去接触Office 的VBA编程;在网上Office的VBA编程论坛中,同样看到有朋友在其中流连了相当长的时间,但仍然不得其门而入。(www.61k.com)问一下这两类朋友,前者觉得编程是一件很“高深”的事,自己恐怕学不会;后者为了提高自己的工作效率,虽然很想学,但自己一点编程的基础也没有,照着网上高手们的帖子做,反而越学越糊涂。当我问第二类朋友为什么不多看看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。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

“VB编辑器”就是VBE,VBE是Visual Basic Editing的缩写。[www.61k.com)我们在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。 好了,实例一到此结束,回顾一下课前的知识点,都掌握了吗?如果觉得没有问题了,就准备进入我们的第二个实例吧。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第二讲)

实例二:基本的对话框函数

知识点: 1、认识消息框函数MxgBox与输入框函数InputBox;

2、什么是常量、什么是变量、申明变量的方法是什么;

3、用“&”符号连接字符串。[www.61k.com)

想想我们平时与他人谈话时的形式——你提问,他回答;或是他提问,你回答。我们所编写的程序,在与计算机进行交互的过程中,其形式也是这样的一问一答。所以,几乎所有的编程语言都提供有直接与计算机进行对话的函数,在VBA中,这样的最基本的函数是消息函数“MsgBox”与输入框函数“InputBox”。 请输入以下代码并运行:

扩展:word vba编程实例 / word vba编程手册 / word vba编程

’’’======还有待完善的程序一=====

sub B()

Dim X

X = inputbox("您的姓名是:")。

Msgbox( " 欢迎您" & X & "朋友!")

End Sub

注意:1、在输入“Msgbox( " 欢迎您" & X & "朋友!")”这行代码时,括号内几个字符串之间有空格,没有输入空格的话会出错,出错时,代码将以红色显示。2、本程序运行时如果点“取消”按钮,其实会出现问题,关于对这个问题的解决方法,将在后面讨论。所以,我们先称本程序为“还有待完善的程序”。(朋友们可以先试一下,看看会出现什么问题?)。

运行效果如图2-1与图2-2。

看到了吗?这就是最简单的与计算机进行对话的效果。

代码解说:

从Sub B()到End sub就是一个完整的过程——“B”。

“InputBox("您的姓名是:")”这句代码是显示一个“输入框”,请您输入自己的姓名。这句代码事实上就是一个计算机提问,人回答的“对话”过程。其中,“InputBox”函数的作用就是弹出一个输入框,等待我们回答计算机的提问。

当然,我们在回答计算机时,可能填的是“老王”也可能填的是“老李”??,这个答案本身是不固定的,所以,我们将这个答案的值赋予“变量”——“X”。这下,大家可能就知道“变量”的含意了吧?在程序运行中,我们经常会遇到值不能确定,或者是可能会发生改变的某个数据,在这个时候,我们就用一个“符号”来“代替”这个可能会变化的值,这个用来代替不能确定的值的“符号”,就是“变量”。

现在,我们删去本程序中的“Dim X”这句后,再运行一下试试效果。怎么样,是不是感觉不到区别?(如果程序报错说“没有申明变量”的话,没有关系,请接着看下面的内容。)在VBA语言中允许我们不申明变量就直接运用它,所以程序仍然能够正常运行。“Dim X”这句代码中的“Dim”就是申明变量的函数,“Dim X”就是申明了一个名叫“X”的变量。在“X=inputbox("您的姓名是:")”这句代码中,我们利用等号,将输入框中取得的值赋予给了变量“X”。

虽说我们不申明变量就可以使用它,但这绝对不是个好的习惯。首先,在一些代码较长的程序中,您能保证那些名字较长的变量在后面用到时,您不会输错吗?其次,自己不申明变量,时间久了,那些较长的程序可能会连您自己也看不懂;另外,程序在访问申明过的变量时,速度会比访问没有申明过的变量要快一些。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

为了避免我们使用变量时出错,我们可以在VBE编辑器菜单的工具——选项——编辑器选项卡上,选中“要求申明变量”(见下面图2-3、2-4),这样VBE会自动在我们每一个工程的前面加上一句“Option

Explicit”,这句代码将检查我们所要使用的变量是否申明,没有申明的话就会中止程序的运行。[www.61k.com]做了上述的操作后,我们再运行去掉“Dim X”语句的过程,程序就会报“没有申明变量”的错误。

在这个消息框所显示的文字中包含了三个部分。字符串“欢迎您” 、字符串“朋友!”和变量“X”所可能对应的字符串“老王、老李??”等。在VBA语言中,我们使用“&”符号来连接字符串,所以我们在程序运行最后,看到的是一个像图2-2那样完整的欢迎语句。VBA语言中,在使用“&”连接符号时,请一定注意字符串与字符串之间有一个空格,否则程序一定会出错。

由于MsgBox函数与InputBox函数是两个非常常用的对话函数,所以,我们再对它进行更深一步的学习。 使用MsgBox函数时的标准格式:

变量=MsgBox(”要显示在这儿的语句”,按钮的参数,”消息框的题目”)

例子:Y= MsgBox(”欢迎您” & X &”朋友!!”,0,”这里是欢迎对话框”)

请注意格式中英文状态下的引号、逗号与空格的使用。

使用InputBox函数时的标准格式:

变量=InputBox(“要显示的提示文本”,” 输入框的题目”,”输入框中默认显示的语句”)

例子:X= InputBox(“请输入您的姓名”,”这里是输入对话框”,”您的姓名请输入到这儿。”)。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

根据上面的格式,请修改本实例的程序代码为:

’’’======还有待完善的程序二=====

Sub B()

Dim X

Dim Y

X = inputbox("您的姓名是:",” 姓名输入框”,” 您的姓名请输入到这儿。[www.61k.com)”)

Y = Msgbox( " 欢迎您" & X & "朋友!",0,” 这里是欢迎对话框.”)

End Sub

本段程序应该很容易读懂吧?运行一下,看看与前面程序的区别在什么地方?再分别把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函数只有一个常数——“空”。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

下面,我们用:如果(If)、那么(Then)、否则(else)、结束(end if)判断语句来完善我们今天的实例。关于“If”判断语句,不是本实例的学习重点,下节课我们将会详细介绍它。代码中必要的地方已添加了注释(还记得为代码添加注释的方法吗?)。

’’=============完善后的B程序===============

Sub B()

Dim X

Dim Y

X = InputBox("您的姓名是:", " 姓名输入框", " 您的姓名请输入到这儿。")

If X <> "" Then’如果X的值不为“空”,那么

Y = MsgBox(" 欢迎您" & X & "朋友!", 0, " 这里是欢迎对话框.")

Else’否则(即,X的值为“空”)

End If’结束

End Sub

代码“If X <> "" Then”中的“<>”是大于与小于符号,表示“不等于”的意思。

分别运行本程序与最前面的程序,并选择“取消”,对比一下运行的效果,从完善后的程序中——想必您不难看出“常数”在程序中的作用了吧?

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

请再多体会体会这本实例中的这几个例子,您对MsgBox与InputBox这两个函数的熟悉程度,将直接影响您后面的学习。[www.61k.com]加点油吧。

本实例的知识扩展:

1、请将本课中学到的MsgBox函数的参数分别运用到实例一中,看看效果如何。

2、请思考:哪些情况下,会使用到MsgBox函数的不同返回的值?

好了,实例二到此结束,请再回顾一遍本实例的知识点,您都掌握了吗?是不是觉得VBA并不像想象中那么困难?如果您确信已完全掌握了前面这两课的内容,那么,准备接受实例三的挑战吧!

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第三讲)

实例三:“猜数游戏”

知识点:1、学习变量的类型与转换;

2、掌握程序的循环与判断;

3、学习随机数的生成。[www.61k.com]

通过对前面两个实例的学习,相信您对自己掌握VBA编程已充满了信心。今天,我们将编写一个小小的游戏程序。这个游戏程序中既包含了新的知识点,又要考验您对前两课知识运用的熟练程度,就让我们静下心来克服这个小难关吧。

游戏内容是这样的:电脑生成一个0到99之间的整数,请您来猜这个数是多少,每猜一次,电脑都给您一个提示,直到您猜中为止。

程序思路:

1、电脑首先生成一个0到99之间的整数;

2、请您输入您所猜的数;

3、把您输入的数与电脑所生成的数进行比较,并给出“您猜大了”或“您猜小了”的提示;

4、如果您猜对了,则退出程序;如果您没有猜对,则循环回第二步重复运行,让您再次输入自己所猜的数。

请看代码,必要的地方已添加了注释。程序中退格与对齐是为了便于理解。请您先试着自己把代码读一 读,看看能不能读懂。)

’ ’=========程序名“您猜”=========

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 ("您猜的数大了")’显示比较的结果。

ElseIf b > d Then’进行比较,如果猜小了。

MsgBox ("您猜的数小了")’显示比较的结果。

Else: b = d’进行比较,如果猜对了。

MsgBox ("哈哈,您猜对了!") ’显示比较的结果。

Exit Do’既然已经猜对了,就跳出循环。

End If’结束比较。

Loop’回到前面的Do,继续循环。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

MsgBox ("您猜了" & a & "次!") ’弹出消息框,并使用了字符串连接。[www.61k.com]

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”。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

生成随机数,是很多程序中要用到的功能(特别是游戏,比如游戏中随机生成不同的怪物或不同的宝物等。),上面的内容希望大家能悉心地体会。

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、试一试自己在程序结尾处再添几句,判断所猜的次数:如果小于六次,给出一个评价“优”;等于六

wordvba WORD VBA编程 从零开始学VBA

次,给出一个评价“良”;大于六次,给出一个评价“您还需努力!”。(www.61k.com]

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 ("您猜的数大了")

ElseIf 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

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第四讲)

实例四:窗体与基本的控件

知识点:1、窗体与控件的使用;

2、什么是“设计时”、什么是“运行时”;

3、了解什么是对像、属性、方法和事件。[www.61k.com]

扎实的基础知识是我们顺利掌握VBA编程语言的先决条件。说到基础知识,我想告诉朋友们—— 我们必须建立起“面向对像”的编程思想。“面向对像”进行编程的思想实在是太重要了!我们所接触的所有事物都是对像,都有属性,也都有属性值。如果您不相信?那么请看——

您怎样来描述自己家里的电视机呢?它的身高?体重?住址?年龄?颜色?频道个数?声道个数?音量大小?屏幕大小?分辨率?刷新率???对,这些都是电视机的“属性”,在这里,“电视机”就是一个“对像”。

以下,假设我们生活在“VBA编程语言”当中,生活中的事物就是VBA的对像——那么,我们怎样来找出一个“对像”的属性,或是怎能样来对“对像”的属性进行赋值呢?看下面的程序:

‘========程序名“您想看几频道”========

Sub 您想看几频道 ()

Dim X

X = InputBox(“请输入您想看的频道的值:”)

电视机 .频道 = X

End Sub

运行这代码,输入您想看的频道的值,比如“10”或是“36”,那么,您就会看到10频道或是36频道的节目。这里,“电视机”是对像,“频道”是它的属性,“10或36”是它的属性值。在“对像”引用自己的某个“属性”时,我们在它们之间用一个小圆点(英文的句号)来表示,具体的格式如代码“电视机.频道 = X”中所示;设置值的时候,用等号来赋予它。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

说到赋值,您是不是想执行“电视机.屏幕尺寸 = 100 吋”命令呢?呵呵,有些事物的属性值是“只读”的,不能修改,比如电视机的重量等。

现在,我正在看一个节目,但我不知道这个节目所在的是几频道,怎么办呢?请看程序——

‘========程序名“当前频道是多少”========

Sub 频道是多少()

Dim 频道的值

频道的值 = 电视机 .当前频道

MsgBox ( “频道的值” )

End Sub

程序不难懂吧?

前一个程序“您想看几频道”中,我们是将“值”赋予对像的属性,后一个“频道是多少”程序中,我们是取得对像属性的“值”。这两种类型的程序在使用时刚好相反,但,它们在VBA编程语言中的运用几乎可以说是无处不在!!请一定要认真体会这两个程序中关于“对像”、“属性”与“值”之间的关系!! 那么,什么又是事件和方法呢?对于电视机来说,当它的电源接通时就发生了“电源接通事件”,反之,它的电源断掉时就发生了“电源断掉事件”。方法,则是指人对电视机进行的操作,比如,现在显示的是10频道,我在电视机的频道调节按钮上,向前按了5次,则进入了15频道。电视机支持使用“频道按钮”进行“频道调节”的动作,就可以说成是它支持“用按钮调整频道”的“方法”,“5”就是这个方法的参数(只要是您家里电视机所支持的值,当然都可以作为它的参数。)。

那位朋友说了“喂,大哥,我们可是在学习Office的VBA编程语言啊!怎么扯到电视机上去了?!”好吧,我们来谈Office。Office是一个对像,Word是一个对像,窗口是一个对像,文档是一个对像,段落、标题、一行文字、一个字符、一个标点、一个表格、一个单元格??无一不是对像!它们都有颜色、大小、宽窄、数量、位置??等等属性。我们利用VBA语言进行编程,不外乎就是为了控制某个对像的某个属性值以方便我们的工作罢了!

wordvba WORD VBA编程 从零开始学VBA

对于对像、属性、方法、事件,我们先了解这么多,在实例六我们将继续对其进行学习。(www.61k.com)今天,我们先试试这些知识在窗体与控件上的运用吧!

一、界面制作

1、打开VBE,指向“插入”菜单,点击“插入用户窗体”命令(也可以在工具栏中做同样的动作。),窗体的名称默认为“UserForm1”,如图4—1。

2、点击控件工具箱按钮,打开控件工具箱,选中工具箱中的“按钮”控件,在窗体上“画”出一个按钮控件(“按钮控件”就是控件工具箱中的那个方形的小块。),按钮的名称默认为“CommandButton1”。

二、属性赋值方法之一:

注意,下面进入今天的关键知识点:

1、首先,双击做好的窗体或按钮,就会打开代码窗口。保证光标在窗体或按钮代码的正中间,按下F5键运行它,或在“运行”菜单中选择“运行用户窗体或子过程”命令运行它,看看效果。如图4-2左面。

这里需要注意两点:

A、如果光标不在代码中间,而您的模块中又还存在其它的代码的话,运行时,VBE会让您选择要运行的宏名称;

B、如果工程被锁定而不能运行的话,首先请在“工具——宏——安全性”对话框中把安全性设为“低”,然后删除VBE中所有存在的代码,并关闭Word,等一下再重新启动,重新开始本步的操作。当然,如果您

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

VBE

wordvba WORD VBA编程 从零开始学VBA

中以前的代码需要保存的话,最好把它剪切到其它文本中去,要用时再复制过来。(www.61k.com]最后,千万记得在本实例完成之后,把“安全性”改回为高,以避免宏病毒。

2、右击按钮CommandButton1,选“属性”,(如果“属性”对话框本来就的打开的,则选中按钮

CommandButton1,然后直接修改属性就行了。)在“属性”对话框中选“Caption”,在右面的属性值中输入“开始运行”。保存后,再次运行,看看与第1步运行时相比,效果有什么不同?对,按钮上面的提示文字已经改变成“开始运行”了。对比效果如图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步中的做法,我们称之为“设计时”修改控件,对于第三步中的做法,我们称之为“运行时”修改控件。

“设计时”修改控件的属性虽然更方便、更容量掌握,但它往往没有“运行时”修改控件属性那么灵活。下面我们再做一个例子,动态改变按钮与窗体的属性值。再体会体会“运行时”修改属性值的灵活性。将前面的代码修改如下:

扩展:word vba编程实例 / word vba编程手册 / word vba编程

‘==========利用单击按钮事件,动态改变按钮名与窗体颜色===========

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

wordvba WORD VBA编程 从零开始学VBA

本程序中用到了窗体的颜色属性(BackColor)及其属性值(RGB)的知识,我们在利用VBA对Word中的文字进行修饰时,经常会用到颜色属性及其值的设置,这里正好学习一下。(www.61k.com]代码最后的“Unload”是窗体的一个方法,其作用是卸载窗体,与平时我们关闭窗体时按右上角最大、最小化按钮那里的“X”按钮等价。有卸载就有加载,加载并显示窗体的命令是“Show”,该命令的使用格式是“窗体名.Show”。

本实例的知识扩展:

1、朋友们在“设计时”属性设置中,下点功夫摸索摸索,尽快熟悉窗体、按钮的各种属性;

2、本例只用到了“控件工具箱”中的按钮控件,其它的控件虽然在作用上各不相同,但在使用的方法上与按钮控件没有什么大的区别,朋友们就自己尝试一下其它的控件吧;

3、请您制作一个窗体,上面加上两个按钮,一个按钮运行实例三中的游戏,另一个按钮退出游戏。

实例四到此结束,怎么样,有收获吗?下一个实例“Word版的媒体播放器”,将是我们前面知识的一个集中练习,也将是一个会让您很有“成就感”的练习。还等得及吗?——

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第五讲)

实例五:Word版的“媒体播放器”

知识点:1、进一步熟悉VBE的操作界面;

2、学习使用窗体与控件进行编程;

3、学习运用附加的控件进行编程。(www.61k.com]

通过以上四个实例的学习,今天,我们终于迎来了激动人心的时刻——编写一个“Word版的媒体播放器”!“媒体播放器”大家不会陌生吧?对,就是开始——程序——附件——娱乐中的“Media player播放器”!相信本实例会给您带来成就感!也算是对我们前四个实例辛苦学习的一点点回报吧!当然,在高兴之余,千万不要忘了对本实例中知识点的学习。其实,本实例中,理论知识上的难度几乎没有,但操作上的步骤却相当多,朋友们耐心一点。

步骤一:界面的制作

1、回忆实例四中的操作方法,在VBE中添加一个窗体,窗体上添加两个按钮。将窗体的“Caption”属性改为“Word版媒体播放器”,再分别将两个按钮的“Caption”属性改为“开始运行”与“结束程序”。

2、右击控件工具箱,选“附加控件”,将“附加控件”面板的滚动条拖动到最底端,然后选中“Windows Media player”控件。“确定”后,退出“附加控件”面板(图5-1)。这时控件工具箱最下面就多出了一个网格状的“Windows Media player”控件。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

3、选中“Windows Media player”控件,在窗体上按您的需要和喜好“画”出它将要显示的范围。(www.61k.com)

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键!!看到了什么??怎么样,有成就感吧??还没完呢!赶快“结束程序”编完最后的代码吧!

扩展:word vba编程实例 / word vba编程手册 / word vba编程

3、回到Word,指向工具——宏,打开“宏名”对话框(不要告诉我,你找不到这个对话框),在“宏名”中输入“我的播放器”(没有引号),点击“创建”按钮,在VBE所生成空过程中输入——

Sub 我的播放器()

UserForm1.Show

End Sub

本段代码与上段代码一样,也无需解说了吧?

4、回到Word,打开工具——自定义,拖动“命令”选项卡的滚动条到最底部,选中“类别”窗格中的“宏”,再找到右边“命令”窗格中的“我的播放器”宏,左键按住它,不要让它跑掉(?),拖动它到“任意”的“菜单栏”或“工具栏”上,好,松左键,它跑不掉了(图5-3)。保证它是被选中的,再回到“命令”选项卡上,点击正中间的“更改所选内容”,把它的名字“美化”一下,或者再给它添一个图标,怎么样,帅吧?!酷吧?!(图5-4)

wordvba WORD VBA编程 从零开始学VBA

5、从此之后,王子和公主就在您的Word中??哦?错了,应该是——从此以后,您的Word中,就多了一个可以播放Mpg、Mp3??等等媒体的小妞??啊,又错了,是“小钮”。(www.61k.com)当然,要播放的内容还得您自己为它指定(写进代码中去)。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

本实例的知识扩展:

1、修改代码来确定媒体文件的路径及文件名不麻烦吗?难道您不愿意使用“输入框”?

2、有没有办法指定一个文件夹后,播放器就自动将这个文件夹下的媒体文件一个一个地播放出来呢?或者,将要播放的文件名写在一个文本文件中,让播放器一个一个地读出它的名字来播放呢?

3、如果要求您不用“设计时”修改控件属性,而让您用“运行时”修改控件属性的方法,来制作步骤一中的界面,您不愿意试一试吗?

4、都有哪些附加控件?各附加控件的作用又都是什么呢?

本实例至此结束!VBA好玩吧?对我们的实例六,您是否已有所期待了呢?

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第六讲)

实例六:Word中的常用对像、属性、方法和事件

知识点:掌握Word中常用的对像并学习这些对像主要的属性、方法和事件。[www.61k.com)

在实例四中,我们已接触了对像、属性、方法和事件的基本概念,今天,我们就来学习一下Word中的常见对像以及它们的属性、方法和事件。本实例的内容稍微多了一些,为了便于朋友们的理解,以下将主要介绍Word中最重要的几个对象、属性、方法与事件。要想得到更详细的内容,朋友们可以在完全掌握本实例后,尝试看看VBA的帮助,在帮助文件中搜索“Microsoft Word 对象”即可。

本实例将重点介绍以下的对象,首先理清我们今天要学习的“对像”的结构层次——

Application对像:即Office中您正在运行的程序本身,如Word或Excel等。Application对像是一个应用程序中的“总对像”或者说是“顶级对像”。在Word中,Application对像包含了程序中可能会存在的其它所有对象,比如:所有的Word文档(Documents)、程序本身的工具栏与菜单栏(CommandBars)、程序的窗口(Window)、程序的内置对话框(Dialogs)等等??

Documents对像:即所有Word文档的集合。该对像中每一个单独的文档,即是文档对像“Document”。在Documents对像中,可以通过引用文档名字的方法来操作一个Document对像。

Document对像:Document对像又具许多子对像。本实例主要介绍两个——Range对象(字符串对像,可以是选定的一串字符或者是一个字符)与Selection对象(活动区域对像,可以是文档中选中的内容或者仅仅是一个插入点);了解Paragraphs(段落集合对像)。

CommandBars对像:即“命令栏”对像。它是Application中所有菜单栏与工具栏的集合。我们在编程时,对菜单栏与工具栏的修改,都是通过操作“ComandBars”对像来实现的。(由于该对像在VBA编程中特别重要,我们将在实例七中单独对其进行介绍。)

Application对像

1、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”方法,后面我们将会进一步学习。

2、Application对像的ActiveDocument属性

wordvba WORD VBA编程 从零开始学VBA

ActiveDocument属性返回一个Document对像(即当前正在使用的“活动文档”),下例显示当前活动文档的名称:

’’’’=========显示活动文档的名称==========

Sub 显示名称()

Dim nameA

NameA=Application.ActiveDocument.name

Msgbox (NameA)

end sub

本段代码中用到了Document对像的一个属性Name,该属性返回文档的名称。[www.61k.com)

扩展:word vba编程实例 / word vba编程手册 / word vba编程

Documents对像

(一)、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 sub

本例用到了Documents对像的一个属性“Count”,该属性的作用是“返回指定集合的中所有项目的个数”,本实例是返回了“已打开的所有文档的个数”。事实上,“Count”属性不单只是Documents对像的属性,其它的对像如Document、CommandBars等对像都具有这个属性。

Document对像

(一)Close方法

本方法用于关闭指定的文档。其基本格式为:“对像 . Close”(这里之所以写的“对像”而没有写“Document”,是因为“Close方法”其实是很多对像都有的方法,而且在使用时格式都相同)。

wordvba WORD VBA编程 从零开始学VBA

下例将关闭并保存活动文档。[www.61k.com)

’’’’=======关闭并保存文档========

Sub 关闭并保存文档 ( )

ActiveDocument. Close SaveChanges:=wdSaveChanges

End Sub

(二)Range方法

Range方法在Document 对象中可以通过使用指定的开始和结束字符位置,返回一个 Range 对象(Range 对象在下面再做介绍。)。语句格式如下:

对像. Range(Start,End)

关键字Start是为了指定Range开始的位置;关键字End是为了指定Range结束的位置。具体应用请看下面的实例。

本实例,将活动文档中的前 150 个字符设置为青绿色。

’’’’=======更改颜色========

sub 更改颜色 ()

ActiveDocument.Range(Start:=0, End:=150).Font.Color = RGB(0, 255, 0)

End Sub

代码中将Font(字体)、Color(字色)属性值指定为RGB颜色设置的参数。

(三)Save 方法

Save方法用于保存指定的文档或模版。其基本格式为:对像 . Save(参数)。Save方法其实也不仅仅只是Document对像的方法,它同时也是Application与Documents对像的方法。本方法参数中最重要的是“指定保存方式”的参数——“NoPrompt”。如果“NoPrompt= True”,Word将自动保存所有文档并且不提醒用户;如果“NoPrompt=False”,则当一篇文档在上次存盘后进行了修改时,Word 就会提醒用户将文档保存为另一个。

下例保存 Documents 集合中的每一文档(本例没有举“Document对像”的例子),并且保存文档时不提示用户。

Sub 保存文档集合 ( )

Documents.Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormat

End sub

(四)SaveAs 方法

该方法主要的作用是“用新的文件名或新的格式(非*.doc格式)”来保存指定文档。本方法对应 “文件”菜单中的“另存为”对话框。其语法及主要参数为:

Document对像.SaveAs(“文件名FileName”,“准备保存的格式FileFormat”, “打开文档时的密码Password”。参数FileFormat的常量可在帮助文档中找到。

下面的代码,将活动文档存为RTF格式(即“写字版”文档的格式),并将文件名改为“Text”。 ’’’’==========另存文档============

Sub 另存为格式 ( )

ActiveDocument.SaveAs FileName:="Text ", FileFormat:=wdFormatRTF

End sub

Range对像

即字符串对像,Range对像的方法非常之多,以下主要介绍常用的Copy方法与Paste 方法。

Copy方法的作用是将所选内容复制到系统剪贴板,Paste 方法是将剪贴板中的内容粘贴到目标位置。 本例复制活动文档的第一段,并将该段落粘贴到文档的末尾。

’’’’’’============复制与粘贴例============

Sub 复制与粘贴例()

Dim myRange

ActiveDocument.Paragraphs(1).Range.Copy

wordvba WORD VBA编程 从零开始学VBA

Set myRange = ActiveDocument.Range

(Start:=ActiveDocument.Content.End–1,End:=ActiveDocument.Content.End - 1)

myRange.Paste

End sub

本例代码较长,重点的地方解释如下:

“Paragraphs”是Document对像的一个子对像,即“段落”对像,其后跟的参数“1”,表示引用文档的第一段。[www.61k.com)(“Paragraphs”对像也是“Document对像”中一个重要的子对像,本文本拟介绍,但考虑到内容的长短,故省略。本对像的内容请参考帮助文件。)

“Set”语句是一个赋值语句,与我们前面学习的“Dim”相关联,“Dim”的作用是申明一个变量,而“Set”语句是将“对一个对像的引用”赋给一个变量。本例中其实是为了找出文章结束的“点”,而将“能够找出该点的语句” 赋给了变量myRange。

“Content”是“Document对像”的一个属性,它返回Document对像的所有文字。本段代码中运用“End”关键字,来找出文字的结尾处,并用“End—1”将结尾向后移动了一位。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

代码如果在一行中写不下,可以用一个下划线“_”来连接前后的代码,本例中“Set”这句较长,可以使用这个连接符。

Selection对像

即活动区域对像,Selection对像的方法也非常多,以下介绍常用的“InsertFile”方法,该方法能插入指定文档的全部或部分内容。其语法为:对像.InsertFile(“要插入的文章名FileName”)

FileName参数必须指定,如果没有指定路径,则 Word 将文档路径设为当前路径。

实例:在活动文档中插入另一个文档,文档插入到您当前光标所在的位置(即“Selection对像”处)。 ’’’======插入文档例======

Sub 插入文档例 ()

Dim MyDoc

MyDoc = InputBox(“请输入您要插入的文章路径及文章名”)’’’如果选“取消”就需要错误调试。 Selection.InsertFile FileName:=MyDoc

End Sub

在实际工作中,我们经常需要将一个文件夹下的所有文档合并到一篇文档中来,如果使用Word“插入”菜单中的“插入文件”命令,一旦文档数量太多,则会非常麻烦。其实,运用一个变量取得文件的名称,并使用循环语句重复运行本段代码,就会使这项工作变得简单。

本实例的知识扩展:请尽量熟悉帮助文件中所有对像的属性、方法与事件。

实例六到此结束,本实例内容较多,愿朋友们通过本实例,既能熟悉这几个重要对像的使用方法,又能以此作为自己熟悉VBA帮助文件的一个台阶。毕竟,本文不可能涉及VBA的方方面面,更多的内容需要大家从“帮助”中去获得。如果大家能够熟练掌握本实例中的内容,那么,再看帮助文件,将不会再是一件难事。

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第七讲)

实例七:自定义Word的命令栏

知识点:1、菜单栏与工具栏知识基础;

2、“运行时”修改菜单栏与工具栏。[www.61k.com)

Office组件中的每一个程序,都有菜单栏和工具栏,而且任何Office程序中的菜单栏与工具栏在VBA中的对像都是“ComandBar”对像。所以,本实例可以用于所有Office程序。

很多朋友在学习VBA的过程中,感到“自定义命令栏”这部份内容难以掌握,原因就在于没有弄清“ComandBar”对像结构的层次性。好了,下面让我们静下心来,开始——

一、“ComandBars”对像与“ComandBar”对像

“ComandBar”对像就是“命令栏”对像,在Application(程序)中无论是菜单栏还是工具栏,都是一个“ComandBar”对像。我们在编程时,对菜单栏与工具栏的修改,都是通过操作“ComandBar”对像来实现的。举一个实例,比如从“文件”菜单到“帮助”菜单为止的那个命令栏,按住“文件”菜单左边有一个竖线的地方,就可以把这个命令栏拖离原位置。这个“命令栏”就是一个“ComandBar”对像。现在我们已经知道什么是命令栏“ComandBar”对像了,那什么是“ComandBars”对像呢?既然尾巴上有字母“s”,“ComandBars”对像肯定就是所有命令栏的集合了!

(一)CommandBars对像的Add方法

Add方法,用于创建一个新的命令栏(这个命令栏既可以是菜单栏,也可以是工具栏。)。

本方法的格式为:对像.Add(“新命令栏的名称Name”,“新命令栏所在的位置Position”,“新命令的作用时期Temporary”)。

参数解释:

Position参数有六个常数:“msoBarLeft,msoBarTop,msoBarRight,msoBarBottom”这四个常数指定新命令栏左右和上下的坐标;“msoBarFloating” 表明新命令栏是可移动的;“msoBarPopup” 表明新命令栏是一个快捷菜单。

Temporary:如果Temporary=True,则新命令栏会在程序关闭时,同时被删除(也就是说,该命令栏只是暂时有效);如果Temporary=False,则不会被删除(Office程序默认为False。)另外,Office组件中的Word与Outlook 会忽略此参数,因此在退出Word或Outlook应用程序之前,您必须手工删除所有临时添加到CommandBars集合中的ComandBar对像。

以下实例创建了一个名叫“新工具栏”的命令栏。

’’’=========创建一个命令栏===========

Sub 创建一个命令栏()

CommandBars.Add(Name:="新工具栏",Position:=msoBarTop,Temporary:=True).Visible = True End Sub

代码中的“Visible = True”表示将创建的工具栏显示出来,如果“Visible = False”则会创建一个隐藏的工具栏(“Visible”是很多对像的属性。)。“Position:=msoBarTop”则表示新建的命令栏居于程序的顶部。如图7-1。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

(二)在CommandBars对像中引用CommandBar对像

在CommandBars对像中引用CommandBar对像常用的方法有两种。[www.61k.com]

第一种:我们在针对某一个菜单项进行操作时,可以直接引用这个菜单项的名称来调用它。如:

CommandBars("View")对应“视图”菜单、CommandBars(“Text”)对应右键弹出菜单等等。请看实例——

’’’’=======使视图菜单失效========

sub 使视图菜单失效 ()

CommandBars("View"). Enabled = False

End sub

Enabled属性是很多对像的属性,它的作用是决定对像在应用程序中的状态。本实例中,如果属性值为True,那么激活指定的命令栏或命令栏控件;如果属性值为False,则该命令栏控件将失效。运行本代码查看效果之后,可将Enabled 的值改为True,再次运行,将视图菜单恢复过来。使视图菜单失效的效果如图7-3。

第二种:我们在对许多菜单项进行操作时,如果像前例那样一个一个写出名称的话会很麻烦,所以可以使用菜单所对应的ID号来调用它。请看实例——

本实例隐藏程序中ID号在前80位的命令栏。

’’’’’’’’’’’’===========隐藏命令栏==========

Sub 隐藏命令栏()

Dim a, b

b = 80 '定义最后的ID值

a = 1 '定义初始ID值

Do '进行循环

a = a + 1 '累加ID值

Application.CommandBars(a).Enabled = True ' 隐藏ID值对应的命令栏

扩展:word vba编程实例 / word vba编程手册 / word vba编程

If a = b Then '在a=80时,准备退出循环

Exit Do

Else

End If

Loop '继续循环

本程序应该不难理解,其实这个用这个方法隐藏命令栏是很傻的,特别是在不知道哪个命令栏对应哪个ID号的时候,用For Next循环是更好的选择(关于“For Next循环”的知识可在帮助文件中找到。)。

二、“CommandBarControl ”对象与“CommandBarControls” 对像

“CommandBarControl 对象”代表命令栏中的命令按钮,“CommandBarControls 集合”则是单个命令栏中所有命令按钮的集合。用CommandBar对像的 “Controls” 属性可返回 CommandBarControls 集合”,格式是“命令栏名·Controls属性 = 该命令栏的CommandBarControls 集合”。

“CommandBarControls”集合对像包含了一个菜单栏或工具栏中所有的命令按钮。根据命令按钮的不同特点,它们又可以具体分为:

按钮对像(CommandBarButton),表示命令栏是的一个上的命令按钮。

弹出式控件(CommandBarPopup 对象),该对像又可以返回一个CommandBar对像。

组合框控件(CommandBarComboBox),该对像代表命令栏中的一个组合框。

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

下面的实例,用“CommandBarControls对像”的Add方法,在菜单栏上添加了一个子菜单。[www.61k.com]

Sub 添加子菜单()

Dim Zicaidan

Set Zicaidan = Application.CommandBars(36).Controls.Add(msoControlPopup, , , , True)

Zicaidan.Caption = "添加的菜单"

End Sub

代码中的“Application.CommandBars(36)”是利用ID号找到“文件”菜单所在的CommandBar命令栏(该命令栏所对应的ID值为“36”,关于怎样找到各命令栏对应的ID号,下文有述。);“Caption”属性,是定义“CommandBarControl”对像的文字标签。

以上实例既然已添加了子菜单,又应该怎样为子菜单添加命令按钮呢?

以下实例在运行时添加菜单,并为菜单添加两个按钮,一个是“CommandBarButton”命令按钮;一个是“CommandBarPopup” 弹出式控件,然后又为“CommandBarPopup” 弹出式控件再添加一个按钮。

修改上述代码为:

Sub 添加菜单与子按钮()

Dim ZCD

Dim ZA

Dim ZAA

Dim FCD

Set ZCD = Application.CommandBars(36).Controls.Add(msoControlPopup, , , , True)

ZCD.Caption = "添加的菜单"

Set ZA = ZCD.Controls.Add(msoControlButton, 1, , , True)

ZA.Caption = "这是命令按钮"

Set ZAA = ZCD.Controls.Add(msoControlPopup, 1, , , True)

ZAA.Caption = "这是弹出按钮"

Set FCD = ZAA.Controls.Add(msoControlButton, 1, , , True)

FCD.Caption = "分按钮"

End Sub

运行效果如何?以上我们做的工作就是“运行时”修改命令栏。那么,如何为我们所自定义的命令按钮指定运行的命令呢?这就要用到按钮的“OnAction”属性。再次修改上述程序,请注意,这次我们修改后的程序是由两段代码组成的——

''''=======程序的主体部份======

Sub 命令按钮的使用()

Dim ZCD

Dim ZA

Dim ZAA

Dim FCD

Set ZCD = Application.CommandBars(36).Controls.Add(msoControlPopup, , , , True)

ZCD.Caption = "添加的菜单"

Set ZA = ZCD.Controls.Add(msoControlButton, 1, , , True)

ZA.Caption = "这是命令按钮"

ZA.OnAction = "删除菜单"’调用下面的“删除菜单”过程

wordvba WORD VBA编程 从零开始学VBA

wordvba WORD VBA编程 从零开始学VBA

Set ZAA = ZCD.Controls.Add(msoControlPopup, 1, , , True)

ZAA.Caption = "这是弹出按钮"

Set FCD = ZAA.Controls.Add(msoControlButton, 1, , , True)

FCD.Caption = "分按钮"

FCD.OnAction = "删除菜单"’调用下面的“删除菜单”过程

End Sub

''''=======下面是要调用的程序======

Sub 删除菜单()

Application.CommandBars(36).Controls("添加的菜单").Delete

End Sub

第二段代码中的“Delete”语句是CommandBarControls对像的一个方法,它的作用就是删除对像。[www.61k.com)请看图7-1。

到此为止,我们就已经学习了关于“运行时”自定义菜单的基本知识,具体的运用,还要朋友们在实际工作中多多体验。

本实例的知识扩展:

1、关于代码保存的地方——

我们从VBA的“工程资源管理器”中可以看到,无论您什么时候打开文档,都会有一个叫“Normal.dot”的模版存在,它就是Word的全局模版。如果没有必要,我们就应该尽量把代码保存到文档自身当中,而不要保存到Normal模版中。如何在文档与模版间进行代码的交换呢?您可以通过“工具”——>“宏”——>“宏名”——>“管理器”对话框进行控制。

2、当Normal模版中的命令栏被修改之后,有时需要我们将它恢复到程序“原始”时的状态,该怎么办呢?当然,学习到现在,您应该已能使用代码来实现,但更快捷的方法是——在Win98中,您只需进入“C:\Windows\Application Data\Microsoft\Templates”中删除模版即可;在win2000中,相应的地址为“C:\Documents and Settings\用户名\Application Data\Microsoft\Templates”中。这个删除模版的方法也可以用来对付一些Word的宏病毒(因为宏病毒的代码一般都放在全局模版当中。)。

3、以下附一段实用程序,该程序用于找出所有命令栏的ID号并同时找出各命令按钮在命令栏中的ID号。本段代码使用了For循环,For循环是VBA编程中一个用处非常广泛的语句,本语句就算是我们的一个自学内容吧?同时也可以试一试自己是否已掌握了使用VBA帮助文件的方法。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

Sub 枚举菜单及按钮()

For i = 1 To CommandBars.Count

Selection.TypeText i & " : " & CommandBars(i).Name

Selection.TypeParagraph

For a = 1 To CommandBars(i).Controls.Count

Selection.TypeText " " & a & " : " & CommandBars(i).Controls(a).Caption

Selection.TypeParagraph

Next

Next

wordvba WORD VBA编程 从零开始学VBA

End Sub

wordvba WORD VBA编程 从零开始学VBA

运行本段程序,Word那一千多个内置命令使您惊叹了吧?微软说,普通办公用不到这些命令的百分之十,您用到了这些按钮中的百分之几了呢?

本实例的知识扩展:能不能利用自定义的按钮运行系统程序呢?比如,自定义一个按钮,运行系统的“记事本”程序或“IE浏览器”?自己试试吧。[www.61k.com)

“自定义命令栏”,作为VBA编程学习中最重要的一环,到此结束。是否囊中有沉甸甸的感觉?如果觉得对本实例的内容还不是很清楚的话,就再多把实例体会体会吧。

wordvba WORD VBA编程 从零开始学VBA

从零开始,步入Word宏编程的世界(第八讲)

实例八:Word与其它的Office组件的协作

知识点: 1、掌握Word与Excel的相互调用;

2、学习调用另外的Office组件;

3、理解集成化办公的理念。[www.61k.com)

Office办公套件是一个完整的整体。如果您能够熟练地使用套件进行协作办公,那一定会使您的办公效率事半功倍。基于Office环境下的集成化办公,应该是这样的:利用Word、Excel、Outlook、IE浏览器等输入或获取数据,并将数据交于Access数据管理程序进行管理;同时也可以利用Word、Excel、Outlook、IE浏览器、PowerPoint或FrontPage等程序,获得并发布Access数据库中的数据。于此,我们不难看出,整个Office套件的核心组件应该是Access数据管理程序。当然,各套件自身各有长处,比如,数据处理方面Excel就强于Access,而Outlook则是能把所有套件协调起来进行工作的有力工具。

今天,我们侧重研究如何在Word 中运用VBA调用Office其它组件的方法。

一、调用其它组件时的标识符

要创建Access对像,使用标识符Access.Application;要创建Excel对像,使用标识符

Excel.Application;要创建Outlook对象,使用标识符Outlook.Application;要创建PowerPoint对象,使用标识符PowerPoint.Application;要在其它程序中创建Word对象,使用标识符Word.Application 这些标识符的具体运用,我们主要举“Word与Excel的相互调用”为例来说明。

二、Word与Excel相互调用

(一)在Word中调用Excel

首先,我们熟悉一下Excel的基本对像:工作簿对像与集合(Workbook、Workbooks)、工作表对像与集合(Worksheet、Worksheets)、单元格对像Range。这些对像在实际使用时,与我们前面介绍的“面向对像”的思想完全相同。

下例将Word中活动文档的第一段发送到Excel中,并将内容放到B3单元格中——

’’’’==========Word联系Excel例===========

Sub 联系例一()

Dim Arange

Dim Aexl

Arange = ActiveDocument.Paragraphs(1).Range’取得Word中第一段的文字

Set Aexl = CreateObject("Excel.Application")’利用标识符启动Excel

Aexl.Visible = True’将Excel显示出来

Aexl.workbooks.Add’新建一个工作簿

Aexl.Range("B3") = Arange’将文字写入工作表中的B3单元格

Set Aexl = Nothing'终止两个程序间的联系

End Sub

代码说明:

Set与CreateObject关键字,用于创建一个对其它Office组件对像的引用,无论您是在任意Office组件中,引用其它的任意Office组件,都必须使用这两个关键字。

Nothing关键字用于终止两个程序间的联系,如果没有这个关键字,程序的联系始终存在,将消耗掉大量的系统资源,容易造成死机。

“Aexl.Visible = True”这段代码用于将Excel对像显示出来。如果没有这一句,Excel将在后台运行,您可以按下“Ctrl+Alt+Del”三键,从系统进程中看到。

(二)在Excel中调用Word

本例在Excel中运行,假定在C盘Text文件夹下有一个MyDoc.doc文件,我们将在excel中启动word,并将MyDoc.doc文件第二自然段的内容写入到Excel第一个工作表的“b8”单元格中。

启动Excel打开VBA,写入如下代码:

Sub 联系的例子二()

Dim wd

wordvba WORD VBA编程 从零开始学VBA

Dim Arange

Set wd = CreateObject("word.application")’利用标识符启动WOrd

wd.Visible = True’显示Word

wd.documents.Open ("C:\Text\MyDoc.doc")’打开欲操作的对像

Arange = wd.documents(1).paragraphs(2).Range’取得要使用的文字

Workbooks(1).Worksheets(1).Range("b8") = Arange’将文字写入相应单元格

Set wd = Nothing '终止两个程序间的联系

End Sub

与前例类似,就无需解释了吧?

本实例的知识扩展:朋友们,多进行实际操作是必不可少的,大家试试其它组件间的相互调用吧。(www.61k.com) 本实例到此结束。以上内容看似简单,但真正想要能熟练地运用“集成化办公”的理念,则如何让Office套件相互间进行通讯,就成了一个非常重要的课题。能够熟练进行套件间的协作完全在于您的大量实践。

扩展:word vba编程实例 / word vba编程手册 / word vba编程

三 : 从零开始23天完成一款Android游戏开发(一)

【Part 1 – 开篇与前 2 天】

开篇

我想开发一款 Android 游戏有一段时间了,但从来没有一个好的 idea。最近,我一直在玩一款跑酷游戏,发现它实在太有意思了。通常来讲,我不喜欢没有终点的游戏,因为你不可能通关,所以每次我玩这些游戏的时候,我总会随意设置一些目标然后再去玩。这次我的目标是得到 30 倍分数复乘技能。当我实现这个目标的时候,我就获得一些技能然后就会迷上这款游戏。这款游戏也让我意识到,一款 Android 游戏没有必要非要有什么大的来头和复杂的游戏设置,简单随意就好。

不管怎样,我觉得一个游戏如果能做到仅需你将手指对准一个东西然后向它射击就很好了。如果再能有一个系统性的任务,每天每周需完成的挑战和一些武器升级的 话,那么这个游戏就会很有趣了。我的第一个想法是创立一款游戏,让一些可爱的小怪兽在一个美丽的场景中到处跑,可以藏在树后面,或者躲在老房子里,甚至可 以是在云朵里。你需要做的就是尽可能多地将它们打下。我说的可爱的小怪兽,指的是一些像 Gremlins(小精灵)之类的玩意。它们会搬一些体形巨大的机器,或者是做一些其他的愚蠢的事情来让你哈哈大笑。当然,作为一个拥有零预算的独立游戏 开发者,就按我可以想象到的动画复杂程度来看,我知道这些将需要投入大量的艺术设计和开发时间。所以我决定采用一种不同的设计,这样我可以在合理的时间内 自己完成。

我现在的目标是在一个月内开发一款有趣而可玩的 Android 游戏。

第 1 天:后院大恐慌

在逛动画素材网站的时候,我发现了一些给力又免费的僵尸动画。有僵尸走动、僵尸被枪击中之类的。所以,这可能是个类似于僵尸射手的游戏。

游戏角色会在他的走廊上,射杀从外面的麦田涌来的僵尸。游戏的名字就叫后院大恐慌。你可以转换不同的游戏角色,老奶奶、拿着猎枪的抠脚大汉或者是拿着远射程来复枪的大兵。下图是非常非常草的草图。

从零开始23天完成一款Android游戏开发(一)_android游戏编程之从零开始

更新:我刚才玩了会僵尸在美国。游戏倒是挺有意思,但是像疯子一样一直按射击多少有点无聊。我打算把后院大恐慌设计成一碰就死的模式,至少僵尸里不要有 boss。我仔细的想了想,僵尸主题对我来说有点太阴郁了,而且只要市面上有,这个类型就不稀罕了。所以,我不确定游戏会不会做成这个类型。另外,这个游 戏看起来会涉及到 3D 图形,不过我会坚持 2D,至少我的第一个安卓游戏会坚持。

第 2 天:安装Eclipse,选择游戏库

我下载了安卓包,然后在 Linux 系统上安装了 Eclipse。 能在 Galaxy S2 手机上运行“Hello World”。 你好 Java。我真的得记住所有这些 Java 指令,因为从 2002 起,我就没用过这些玩意儿了。

从零开始23天完成一款Android游戏开发(一)_android游戏编程之从零开始

看着这些 2D/3D OpenGL 类的东西,似乎用工具包/库来搭建游戏会是一个好办法。我从 NordicGame2013 上弄到一些免费的 Unity3D 序列号,但是还没有在 Google Play 上发行的权限。所以我想我得暂时跳过 Unity 了。现在我正着手于 CoronaSDK 和一些其他的库。

相关:

从零开始23天完成一款Android游戏开发(二)

从零开始23天完成一款Android游戏开发(三)

从零开始23天完成一款Android游戏开发(四)

从零开始23天完成一款Android游戏开发(五)

从零开始23天完成一款Android游戏开发(六)

从零开始23天完成一款Android游戏开发(七)

从零开始23天完成一款Android游戏开发(八)

翻译:bigosaur ImportNew.com

译文链接:

本文标题:android游戏编程之从零开始-Gamestop在200家零售店推出Android游戏平板
本文地址: http://www.61k.com/1074308.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1