CallByName 関数

オブジェクトのメソッドを実行するか、オブジェクトのプロパティを設定するか返します。

構文

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

CallByName関数の構文に使用される名前付き引数は次のとおりです。

指定項目 説明
object 必須。Variant (Object)。 関数を実行するオブジェクトの名前。
procname 必須。Variant (String)。 オブジェクトのプロパティまたはメソッドの名前を含む文字列式。
calltype 必須。定数。 呼び出されるプロシージャの型を表す vbCallType 型の定数。
args() 省略可能。Variant (Array)。

解説

CallByName 関数は、実行時に文字列名を使用してプロパティを取得または設定するか、メソッドを呼び出すために使用されます。

次の例では、1 行目で CallByName を使用してテキスト ボックスの MousePointer プロパティを設定し、2 行目で MousePointer プロパティの値を取得し、3 行目で Move メソッドを呼び出してテキスト ボックスを移動します。

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

この例では、CallByName 関数を使用して、コマンド ボタンの Move メソッドを呼び出します。

例ではまた、ボタン (Command1) とラベル (Label1) を含むフォーム (Form1) を使用します。 フォームが読み込まれると、ラベルの 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

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。