AddressOf Operator
SyntaxGroupAddressOf [expr.]name
OperatorDescription
Return a delegate for the exprmacro/module's 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/module. If no other references to the macro/module exist then the macro/module reference is deleted and using the result of the AddressOf operator causes a run-time error.
See Also
Parameters Description expr This is a macro/module reference. If omitted then the current macro/module's reference (Me) is used. name Return a delegate for this Sub or Function.
Delegate
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