Henri: Tenés varias opciones:
1. Si las regiones son rectángulares, lo dudo, basta colocar un montón de controles image y utilizar el evento click.
2. Si no son rectángulares, se me ocurren tres soluciones:
a. Crear un bitmap con las regiones "sensibles", cargarlo en un control image y utilizar el evento Mouse_Down para reconocer la región "sensible" con un gran if o select case que identifique cada región. Vas a tener que dividir cad región en fetas pequeñas para que resulte útil.
b. Utilizar varios pictures con las imágenes cargadas, llamar a las Apis apropiadas para crear las regiones que vos querés y usás el evento click
c. Es la menos ortodoxa. Utilizá una página html con regiones sensibles. Por ejemplo, acabo de crear una página html con un cuadrado, un cículo grande y uno pequeño, cada una de estas regiones posee un link diferente, http:\\www.x.com,http:\\www.y.com,http:\\www.z.com respectivamente, (no hace falta que sea http:\\www.xxxx.com, puede ser cualquier cosa). Luego colocás un control webbroowser que muestre esta página y utilizás el evento BeforeNavigate2 para interceptar el link. El código sería así:
Option Explicit
Private Sub Form_Load()
WebBrowser1.Navigate2 App.Path & "\index.htm"
End Sub
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Select Case URL
Case "http://www.x.com/"
Cancel = 1
MsgBox "Tocó el cuadrado"
Case "http://www.y.com/"
Cancel = 1
MsgBox "Tocó el círculo grande"
Case "http://www.z.com/"
Cancel = 1
MsgBox "Tocó el círculo chico"
End Select
End Sub
Ésta última es sencilla y funciona bien, la acabo de probar. Espero que te sea útil
Saludos Ruri