Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

tag 標(biāo)簽: vba的反射機(jī)制

相關(guān)帖子

版塊 作者 回復(fù)/查看 最后發(fā)表

沒有相關(guān)內(nèi)容

相關(guān)日志

分享 CallByName函數(shù)---被微軟閹割的反射機(jī)制
ganlinlao 2014-7-19 11:49
題外話:年青人,如果你還沒來得及學(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, ) CallByName 函數(shù)的語法有以下命名參數(shù): 部分 描述 objec t 必需的; 變體型(對(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簡(jiǎn)單的使用例子: CallByName Me.Text1, "mousepointer", VbLet, vbCrosshair '設(shè)置text1文本框的鼠標(biāo)樣式。 Result = CallByName (Text1, "text", vbGet) '獲取text1的值 CallByName Text1, "Move", vbMethod, 100, 100 如果單看這些vba提供簡(jiǎn)單的例子,都會(huì)覺得CallByname挺雞肋的。
個(gè)人分類: vb入門|2485 次閱讀|0 個(gè)評(píng)論

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 07:41 , Processed in 0.066427 second(s), 13 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部