CallByName 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

執行物件的方法,或設定或傳回物件的屬性。

語法

CallByName (objectprocnamecalltype [, args () ])

CallByName 函數語法具有下列引數:

引數 描述
物件 必要。 變體 (物件) 。 將執行函數的物件名稱。
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

範例

注意

下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例使用 CallByName 函數來叫用命令按鈕的 Move 方法。

此範例也會使用表單 (Form1) ,其中包含按鈕 (Command1) ,以及標籤 (Label1) 。 載入表單時,標籤的 Caption 屬性會設定為要叫用的方法名稱,在此案例中為 “Move”。 當您按一下按鈕時, CallByName 函數會叫用方法來變更按鈕的位置。

Option Explicit
Private Sub Form_Load()
  Label1.Caption = "Move"' Name of Move method.
End Sub
Private Sub Command1_Click()
If Command1.Left <> 0 Then
  CallByName Command1, Label1.Caption, vbMethod, 0, 0
Else
  CallByName Command1, Label1.Caption, vbMethod, 500, 500
End If