lo mejor es trabjar con regiones pero quizas te la complique mucho, pero bueno si eso seria es mas facil.
mas facil aun seria utilizar picurebox ya que estos tiene el evento click pero vamos a lo que tu buscas
agrega dos shape a un formulario y el siguiente codigo
Código:
Option Explicit
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Shape1.Left And Y > Shape1.Top And X < Shape1.Left + Shape1.Width And Y < Shape1.Top + Shape1.Height Then
MsgBox Now
End If
If X > Shape2.Left And Y > Shape2.Top And X < Shape2.Left + Shape2.Width And Y < Shape2.Top + Shape2.Height Then
Unload Me
End If
End Sub
esto es sensillo porque solo dices de usar 2 shape ahora supongamos que quieres utilizar 50 el codigo seria muy extenxo entoses te combiene utilizar array de controles y puedes emplear un codigo como este
Código:
Option Explicit
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim i As Long
For i = 0 To Shape1.Count - 1
If X > Shape1(i).Left And Y > Shape1(i).Top And X < Shape1(i).Left + Shape1(i).Width And Y < Shape1(i).Top + Shape1(i).Height Then
Call Shape_Click(i)
End If
Next
End Sub
Private Sub Shape_Click(index As Long)
Select Case index
Case 0
MsgBox "hola"
Case 1
MsgBox "chau"
Case 2
MsgBox "coca cola"
Case 3
MsgBox "sapallo"
End Select
End Sub
Saludos