AddressOf Operator
Syntax
AddressOf [expr.]name
Group
Description
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.
Parameters
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. |
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
See also