Abrir desde excel powerpoint por una diapositiva concreta

Tengo un libro excel habilitado para macros y quiero que a través de un botón que tengo en excel se habrá un powerpoint en la diapositiva que me marca una casilla de excel, el archivo excel es xlsm y el powerpoint pptm, tengo un código que me funciona solo si la presentación powerpoint esta en formato ppsm, el código es este:

Dim archivo As String
archivo = ThisWorkbook.Path & "\mi_archivo.ppsm"
ActiveWorkbook.FollowHyperlink Address:=archivo, SubAddress:=Range("I9").Text

Este código si el formato del powerpoint es pptm no funciona, me valdría también un código que desde el pptm vinculara el nombre de la diapositiva a la celda I9 del excel, tengo un add-in con el que puedo auto ejecutar macros al arranque del pptm

2 Respuestas

Respuesta
1

Ejecuta la siguiente macro para abrir el archivo powerpoint y seleccionar un número de diapositiva

Sub a_PowerPoint()
'Act.Por.Dante Amor
    Dim ObjPowerPoint As New PowerPoint.Application
    Dim Presentacion As PowerPoint.Presentation
    Dim diapositiva As PowerPoint.slide
    '
    diap = Range("H9")  'número de diapositiva que quieres abrir
    '
    archivo = ThisWorkbook.Path & "\mi_archivo.pptm"
    ObjPowerPoint.Visible = True
    ObjPowerPoint.Presentations.Open Filename:=archivo
    Set Presentacion = ObjPowerPoint.ActivePresentation
    Presentacion.Slides(diap).Select
    '
    Set ObjPowerPoint = Nothing
    Set Presentacion = Nothing
    Set diapositiva = Nothing
 End Sub

Debes activar la referencia "Microsoft Powerpoint 12.0 Object Library", para ello, entra a VBA, al menú Herramientas, Referencias y busca la de "Microsoft Powerpoint" y el número que aparezca según tu versión de office.


En la celda H9 debes poner el número de diapositiva que quieras seleccionar.


.

.

Respuesta
1

Lo idóneo es usar un objeto "Power Point" y abrir la presentación a través de macros. Ya que usas un archivo del tipo *.ppsm, asumo que más que abrir el archivo en el Power Point, quieres que se vea en estilo "presentación". Usa algo así:

Sub AbrirPPT()
Dim appPpt As Object
Set appPpt = CreateObject("Powerpoint.Application")
With appPpt
    .Presentations.Open Filename:=ThisWorkbook.Path & "\Hola.ppsm"
    .ActivePresentation.SlideShowSettings.Run
    .ActivePresentation.SlideShowWindow.View.GotoSlide (3)
    .Visible = True
End With
Set appPpt = Nothing
End Sub

Donde dice "(3)" tú puedes reemplazarlo por una variable y/o el valor de una celda en donde coloques el número de la diapositiva en la que quieras que se abra el archivo.

Salu2

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas