Capturar click sobre shapes en Excel con VBA

Quiero capturar el evento click de un shape (forma). Pues solo sé para capturar la celda activa, que es con Address.
Lo explico más a detalle:
En la Hoja tengo dos formas:
- 1 Rectángulo
- 1 Círculo
Lo que quiero es que:
- Si se hace click en el rectángulo, me salga un Msgbox diciendo "Has seleccionado un rectángulo"
- De la misma manera para el círculo.

1 Respuesta

Respuesta
3

Para que funcione en una sola macro realiza lo siguiente:

- A cada forma le tienes que poner un nombre en el cuadro de nombres:


Ahora, en un módulo pon la siguiente macro:

Sub Mensaje_Shape()
'Por.Dante Amor
    Select Case TypeName(Application.Caller)
        Case "String": nombre = Application.Caller
        Case Else: nombre = "Objeto desconocido"
    End Select
    MsgBox "Has seleccionado un " & nombre
End Sub

Asigna la macro a cada shape:

Sigue las Instrucciones para un shape y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Regresa a tu hoja de excel.
  6. Presiona click derecho dentro de un shape y selecciona: Asignar macro.
  7. Selecciona: Mensaje_Shape
  8. Aceptar.
  9. Repite los paso del 6 al 8 para cada Shape
  10. Para ejecutarla dale click a cualquier shape

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Gracias por tu pronta respuesta amigo, es fantástico cuando te sacan de una duda rápidamente, la macro funciona y muchas gracias.

Como cada día se aprende alguito más, quisiera saber además:

1. Que que libro o publicación me puedes recomendar para la aprender a manipular objetos shape (o formas).

2. Si no hay información recopilada (u ordenada), por favor, si dispones de tiempo, quisiera que me expliques como funciona o para que sirve:

a) Caller

Lo demás se entendió perfecto.

Caller, contiene el identificador que ha llamado a la macro, puedes observar la documentación en el siguiente enlace:

https://msdn.microsoft.com/en-us/library/office/ff193687.aspx 

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas