If you name your shapes "1", "2" whatever you can pass the name if the macro resembles
Code:
Sub test(oshp As Shape)
Dim L As Long
L = CLng(oshp.Name)
MsgBox "Ten times " & L & "is " & 10 * L
End Sub
Obviously this is a very simple example but you should be able to pass any value in this way. You link would just call "test" or whatever you call the macro.