CallByName 函数
执行一个对象的方法,或者设置或返回一个对象的属性。
语法
CallByName(object, procname, calltype,[args()])
CallByName 函数的语法有以下命名参数:
部分 | 描述 |
---|---|
object | 必需的;变体型(对象)。函数将要执行的对象的名称。 |
procname | 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。 |
calltype | 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。 |
args() | 可选的:变体型(数组)。 |
说明
CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。
在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
上边是关于CallbyName函数的用法,但是如果进行如下试验,就会发现存在一些缺陷如下:
'系统提示错误
vba.Interaction.CallByName(activedocument,"Paragraphs.Count",VbGet )
'函数运行正常
vba.Interaction.CallByName(activedocument.Paragraphs,"Count",VbGet )
关键就在于ProcName不能是多级的属性,只能是最近的属性,为了解决这个问题,只能动点手脚了,自己处理ProcName部
分了,很是不爽。
但是CallbyName 确实是个好东西,用好了会收益不浅的。
使用Google搜索一下,有些文章不错的,记录一下:
1:根据对象名称来操作对象(非CallByName方法)
2:让数据来证明
3:后绑定方式下对Object的处理