Skip to content

Latest commit

 

History

History
66 lines (46 loc) · 2.52 KB

callbyname-function.md

File metadata and controls

66 lines (46 loc) · 2.52 KB
title keywords f1_keywords ms.assetid ms.date ms.localizationpriority
CallByName function (Visual Basic for Applications)
vblr6.chm1020905
vblr6.chm1020905
e76dece5-244f-9514-4ccf-d993d6476061
12/11/2018
medium

CallByName function

Executes a method of an object, or sets or returns a property of an object.

Syntax

CallByName (object, procname, calltype, [args()]_)

The CallByName function syntax has these named arguments:

Part Description
object Required: Variant (Object). The name of the object on which the function will be executed.
procname Required: Variant (String). A string expression containing the name of a property or method of the object.
calltype Required: Constant. A constant of type vbCallType representing the type of procedure being called.
args() Optional: Variant (Array).

Remarks

The CallByName function is used to get or set a property, or invoke a method at run time by using a string name.

In the following example, the first line uses CallByName to set the MousePointer property of a text box, the second line gets the value of the MousePointer property, and the third line invokes the Move method to move the text box.

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100

Example

This example uses the CallByName function to invoke the Move method of a Command button.

The example also uses a form (Form1) with a button (Command1), and a label (Label1). When the form is loaded, the Caption property of the label is set to "Move", and the name of the method to invoke. When you click the button, the CallByName function invokes the method to change the location of the button.

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

See also

[!includeSupport and feedback]