No.1
VBA函数是应用内置的一些功能代码块,是一些常用的功能编辑为一个程度段,共直接调用来实现某种结果。
本节开始,介绍一些函数,学以致用,提高vba编程技巧为目的。
CallByName是一个对象功能块。
它的作用是对某一个对象进行属性设置、返回和方法执行的功能。
似乎并不好理解。
再解释一下,它是针对某一个对象的函数,如一个按钮对象或一个文本框对象。
做什么呢?
使用这个函数,可以设置文本框对象的属性,也可以返回对象的属性。
当然了,还可以执行文本框对象的方法。
函数参数如下图所示:
No.2
严格来说,这个函数比较难操作。
对于初学者来说就更加困难,因为它需要使用者掌握对象以及对象的属性和方法。
所以,并不十分掌握。
但是有一点还是很可以期待的。
这个函数的使用方法,相对简单,重点在于参数,要特别记忆。
语法:
CallByName(object、 procname、 calltype、[args ()] ))
参数:
object:对象变量名称
procname:属性或方法名称
calltype:过程类型,常量。
[args ()]:属性数组
如上语法和参数了解一下,用一个实例来说明一下,如何使用。
No.3
本例以一个文本框对象做一个提示,并不完全表现本函数的所有功能,而且本想做的某些属性和方法,也没有调试通过,不知道哪里存在问题。
似乎使用本函数并不能获取有些属性值。
如有兴趣不妨一试探究。
按钮代码:
Private Sub CommandButton1_Click()
Dim Xobj As Object, Xvalue As String
Set Xobj = Me.TextBox1
Xvalue = "复制一个文本框"
Dim Robj As Range
Set Robj = Range("A3")
setTextValue Xobj, Xvalue, Robj
End Sub
过程代码:
Private Sub setTextValue(Xobj As Object, Xvalue As String, Robj As Range)
CallByName Xobj, "Borderstyle", VbLet, 1"设置边框
CallByName Xobj, "Value", VbLet, Xvalue"设置文本值
x = CallByName(Robj, "value", VbGet)"获取文本值
CallByName Xobj, "copy", VbMethod"调用Copy方法
End Sub
文本框属性设置
Private Sub CommandButton3_Click()
Dim TR As Range, x As Variant
Set TR = Range("H4")
Dim Tobj As Object
For Each Tobj In Me.OLEObjects
If VBA.Left(Tobj.Name, 7) = "TextBox" Then
CallByName Tobj, "Height", VbLet, TR "设置高度
CallByName Tobj, "Width", VbLet, TR.Offset(0, 1) "设置宽度
CallByName Tobj, "left", VbLet, TR.Offset(0, 2)"左边距
CallByName Tobj, "Top", VbLet, TR.Offset(0, 3)"上边距
End If
Next Tobj
End Sub
有vba编程基础,看注解基本明白函数某些功能。
看到这里,说明也不是初学者,希望这样的例子可以帮助你在vba路上越走越好。
欢迎关注、收藏、转发。
下一篇:VBA代码图形技术