Syntax 

AddressOf [expr.]name


Group 

Operator 


Description 

Return a delegate for the expr macro Sub or Function matching name.

A delegate's Sub or Function is called using the delegate's Invoke method.

Note: The AddressOf operator returns an object which holds a weak reference to the macro. If no other references to the macro exists then the macro reference is deleted and using the result of the AddressOf operator causes a run-time error.


Parameters

Description

expr 

This is a macro reference. If omitted then the current macro's reference (Me) is used.

name 

Return a delegate for this Sub or Function.


See Also 

Delegate


Example 

Delegate Function OpType(ByVal v1 As Variant, ByVal v2 As Variant) As Variant

 

Sub Main

    Debug.Print DoOp(AddressOf Add,1,2) ' 3

    Debug.Print DoOp(AddressOf Subtract,1,2) '-1

End Sub

 

Function DoOp(ByVal op As OpType, _

              ByVal v1 As Variant, ByVal v2 As Variant) As Variant

    DoOp = op.Invoke(v1,v2)

End Function

 

Function Add(ByVal v1 As Variant, ByVal v2 As Variant) As Variant

    Add = v1+v2

End Function

 

Function Subtract(ByVal v1 As Variant, ByVal v2 As Variant) As Variant

    Subtract = v1-v2

End Function