Detección mouse sobre figuras en powerpoint

Requiero realizar una presentación en powerpoint, de tal forma que cuando el puntero del mouse pase sobre alguna figura (forma) determinada, se active el evento mousemove y pueda realizar una tarea en consecuencia. Para lo anterior quiero utilizar VisualBAsicForApplication pero no logro encontrar el código adecuado. Agradecer cualquier apoyo.

1 respuesta

Respuesta
1
Pues en vez de utilizar VBA (Visual Basic para Aplicaciones) te recomiendo primero intentes lo siguiente:
1.- Selecciona la figura.
2.- Clc en el Menú: Presentación > Personalizar animación
3.- Vas a la pestaña "Acción del mouse" y se mostrará una lista con todas las acciones disponibles para cuando el usuario pase el puntero del mouse sobre la figura:
   a) Hipervínculo a
b) Ejecutar programa
c) Reproducir sonido
d) Resaltar al pasar el mouse por encima
Si ninguna de estas opciones te sirve para hacer lo que necesitas, entonces sí debes utilizar VBA, si tienes alguna duda me lo comunicas.
Saludos desde México. Juan Pablo E.P.
Requiero que cuando el mouse pase sobre algunas figuras, automáticamente cambien el contenido de un cuadro de texto, pero sin estar saltando a otras diapositivas. He programado en VB algunas cosas hace tiempo, pero ahora no encuentro la forma de hacerlo y se que debe ser algo sencillo.
Saludos.
De acuerdo, pues lo que te propongo es algo <span style="font-weight: bold;">similar</span>, tan sólo debes escribir algunas líneas de <span style="font-weight: bold;">código VB</span> y combinarlas con tu diseño de <span style="font-weight: bold;">presentación</span>.
1.- Debes entrar al "<span style="font-weight: bold;">Editor de Visual Basic</span>" [<span style="font-style: italic;">Menú: Herramientas > Macro > Editor de Visual Basic</span>].
2.- Insertar un nuevo <span style="font-weight: bold;">módulo </span>[<span style="font-style: italic;">Menú: Insertar > Módulo</span>].
3.- Crear un nuevo <span style="font-weight: bold;">procedimiento </span>[<span style="font-style: italic;">macro</span>] con el siguiente <span style="font-weight: bold;">código</span>:
<p style="font-weight: bold;">Public Sub <span style="font-weight: normal;">Escribir</span>()
    Slide1.TextBox1.Text = "<span style="font-weight: normal;">Mensaje</span>"
End Sub
4.- Salir del <span style="font-weight: bold;">Editor de Visual Basic</span> [<span style="font-style: italic;">simplemente cerrando la ventana</span>].
5.- Realizar los pasos que te mencioné en la <span style="font-weight: bold;">respuesta anterior</span>, sólo con un pequeño cambio:
[<span style="font-style: italic;">Respuesta anterior</span>]
1.- Selecciona la figura.
2.- Clic en el Menú: Presentación > Personalizar animación
3.- Vas a la pestaña "Acción del mouse" y se mostrará una lista con todas las acciones disponibles para cuando el usuario pase el puntero del mouse sobre la figura:
   a) Hipervínculo a
b) Ejecutar programa
c) Reproducir sonido
d) Resaltar al pasar el mouse por encima
[<span style="font-style: italic;">Detalle agregado</span>]
Elegir "<span style="font-weight: bold;">Ejecutar macro</span>" [<span style="font-style: italic;">ahora estará disponible ya que has creado una (<span style="font-weight: bold;">Escribir</span>)</span>] y dar clic en "<span style="font-weight: bold;">Aceptar</span>".
Con esto verás que al mostrar la presentación [<span style="font-style: italic;">Menú: Presentación > Ver presentación</span>] se escribe el texto controlado por la macro "<span style="font-weight: bold;">Escribir</span>".
Si necesitas algún detalle más específico, no dudes en decírmelo.
<span style="font-weight: bold;">Saludos desde México. Juan Pablo E.P.</span>
Probé tu consejo con 2 figuras y el resultado fue muy bueno. Gracias.
El detalle es que si tengo 103 figuras en la diapositiva, tendría que generar 103 macros.
Me podrías aconsejar que una sola macro pudiera identificar la figura por la que pasa el ratón y con instrucciones IF o COND, etc. ¿se tomara la decisión del texto a presentar?
Tengo un archivo complemento Rename.ppa que da la oportunidad de cambiar el nombre por default de los objetos PowerPoint a nombre personalizados. ¿Con esto y algo de programación complementaria se podría generar la macro?
Nunca he hecho lo que pides, pero te puedo dar una sugerencia en base a algunas experiencias similares que he tenido.
Usando la característica de tu complemento [Rename.ppa] renombra tus objetos usando un nombre común y un índice[se debe crear una "matriz de controles"] y utiliza una sentencia SELECT para decidir el texto que se escribirá en el TEXTBOX dependiendo de la figura activada, quedando el código de la siguiente forma:
NOTA: Debes capturar el índice de la figura selaccionada, directamente en VB sería:
'declarar una variable pública que almacene el Index de la figura activada
Dim IdFigura as Integer
Private Sub Picture1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
     'almacenar el Index en la variable pública
     IdFigura = Index
End Sub
'realizar la comparación
SELECT CASE IdFigura
     CASE 1: TEXTBOX .TEXT = "Figura 1"
     CASE 2: TEXTBOX .TEXT = "Figura 2"
     CASE 3: TEXTBOX .TEXT = "Figura 3"
     '...
     CASE 103: TEXTBOX .TEXT = "Figura 103"
END SELECT
Repito que nunca lo he llevado a la práctica, espero todo salga bien, si necesitas más detalles, mándame el archivo para realizar pruebas y te digo mis resultados.
Saludos desde México. Juan Pablo E.P.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas