||
題外話:年青人,如果你還沒來得及學(xué)習(xí)vba,跳過它吧,直接學(xué)習(xí)vb.net或c#
CallByName函數(shù)是一個(gè)很容易被忽略的函數(shù),很多人都認(rèn)為它是一個(gè)雞肋的函數(shù)。
但事實(shí)上,它并不是!它只是生活在童話里的那只丑小鴨。
1、vba幫助是如何定義CallByName函數(shù)?
CallByName 函數(shù)
執(zhí)行一個(gè)對(duì)象的方法,或者設(shè)置或返回一個(gè)對(duì)象的屬性。
語法
CallByName(object, procname, calltype,[args()])
CallByName 函數(shù)的語法有以下命名參數(shù):
部分 | 描述 |
---|---|
object | 必需的;變體型(對(duì)象)。函數(shù)將要執(zhí)行的對(duì)象的名稱。 |
procname | 必需的;變體型(字符串)。一個(gè)包含該對(duì)象的屬性名稱或者方法名稱的字符串表達(dá)式。 |
calltype | 必需的;常數(shù)。一個(gè) vbCallType 類型的常數(shù),代表正在被調(diào)用的過程的類型。 |
args() | 可選的:變體型(數(shù)組)。 |
說明
CallByName 函數(shù)用于獲取或者設(shè)置一個(gè)屬性,或者在運(yùn)行時(shí)使用一個(gè)字符串名稱來調(diào)用一個(gè)方法。
個(gè)人理解與說明:
CallByName是使用iDispatch接口,也就是后期綁定。所以性能比前期綁定要差一些。
Vba中的自定義類,都是雙接口,所以CallByName,可以適用于自定義類的實(shí)例化對(duì)象。
CallByName無法使用模塊中的函數(shù)。要使用函數(shù),都須用類包裝起來。
2、CallByName簡單的使用例子:
CallByName Me.Text1, "mousepointer", VbLet, vbCrosshair '設(shè)置text1文本框的鼠標(biāo)樣式。
Result = CallByName (Text1, "text", vbGet) '獲取text1的值
CallByName Text1, "Move", vbMethod, 100, 100
如果單看這些vba提供簡單的例子,都會(huì)覺得CallByname挺雞肋的。
|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國
( 粵ICP備10043721號(hào)-1 )
GMT+8, 2025-7-13 03:03 , Processed in 0.065249 second(s), 17 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.