excelvba指令对象( 二 )


上面例子中的Left、Hard和Hign还是比较容易理解,但使用下面的参数时:
WordArt.Add Left:=10,Top:=20,Width:=100,Height:=200
将其简写成下面的代码:
WordArt.Add 10,20,100,200
这就让人困惑了!这也是一条有效的代码,但除非你知道Add方法默认的顺序分别是Left、Top、Width、Height,否则这条代码的意思很难明白 。
再复杂一些 。用户在一条代码中可以指定某个参数的名称,省略掉另外参数的名称 。例如,用户在不指明参数名称的情况下在参数的默认位置设置参数,然后突然带上一个指明名称的参数,而且这个参数不一定在默认的位置上 。如果想把踢高高地踢到左边,而不介意力量的大小(使用默认的力量),那么下面的两条语句是等效的:
Balls(“Soccer”).Kick Direction:=Left,Elevation:=High
Balls(“Soccer”).Kick Left, Elevation:=High
一旦开始指明参数名,后面的代码就都需要指明参数名称 。
灵活的参数表示,方便的同时也带来了问题!
对于对象的属性的参数来说,也有类似的规则 。
有些方法很简单,例如要模拟按下F9键(即重新计算工作表),可以使用如下代码:
Application.Calculate
有些方法可以执行一个动作并创建新的对象,例如,下面的代码添加一张工作表:
Worksheets.Add Before:=Worksheets(1)
可以将Add方法创建的新对象指定给一个变量,此时,必须使用括号将参数包住:
Set MyWorksheet= Worksheets.Add(Before:=Worksheets(1))
与很多解对象的书相似,一般代表对象的是名词,代表方法的是动词,而代表属性的则是形容词 。前面我们过,代码中的:
ActiveCell
代表活动单元格 。
现在,我们想将活动单元格的颜色更改为黄色,要用到其属性Interior.ColorIndex,代码如下:
ActiveCell.Interior.ColorIndex = 6
虽然代码中用到了两个句点,看似复杂一点,但是其结构仍然是“名词+点+其他内容”,这次是Object.Property(对象.属性) 。
差别在于,给属性赋值时,等号前面没有冒号 。
对象的属性总是被设置成等于什么,或者是获取属性的值给变量或其它对象的属性 。
例如,要将当前单元格的颜色设置成单元格A1的颜色,代码如下:
ActiveCell.Interior.ColorIndex =Range(“A1”).Interior.ColorIndex
Interior.ColorIndex是属性,通过更改属性的值,可以将对象的表现进行相应的更改 。更改形容词就可以对单元格进行某些设置 。我们通常会说“将单元格设置为红色的”,而VBA会这样“说”:
ActiveCell.Interior.ColorIndex = 3

推荐阅读