Access

Índice de diapositivas de PowerPoint

Este código enumera los números y títulos de las diapositivas de PowerPoint en la ventana de depuración para que pueda copiar y pegar los resultados donde desee. Opcionalmente, también puede mostrar el nombre del diseño del patrón de diapositivas. Cambiar personalizar:
Declaración para hacer que bMaster sea Verdadero o Falso (predeterminado=Verdadero).

Este VBA se ejecuta en PowerPoint para ActivePresentation, pero puede hacerlo desde otro lugar (como Access) si lo desea, o cambiar el código de solo leer e informar a también escribir información.

Option Explicit 

'*************** Code Start *****************************************************
' module name: mod_ppt_SlideIndex_s4p
'-------------------------------------------------------------------------------
' Purpose  : VBA to list slide number, slide title, 
'              and master layout name (optional)
'            in Debug window
' Author   : crystal (strive4peace)
' Code List: www.msaccessgurus.com/code.htm
' This code: 
' 231113 s4p
' LICENSE  :
'   You may freely use and share this code, but not sell it.
'   Keep attribution. Mark changes. Use at your own risk.
'------------------------------------------------------------------------------
'           MakeSlideIndex_s4p
'------------------------------------------------------------------------------
Public Sub MakeSlideIndex_s4p() 
's4p ...231113
'populate arrays of slide titles and master layouts
'slide titles modified from code posted by Paul_Hossler here:
' 
'prints to Immediate window
'   press Ctrl-G to turn on before running
'   to see more, drag by titlebar to float, move, resize

   'example:
   '   -#-   -- Title --           -- Master Layout --
   '    1    VBA Class Basics      Title Slide
   '    2    Why use classes?      Title and Content
   ' ...
   '    5    Demo                  Section Header
   '    6    Switch to Access      Title Only
   ' ...
 
   '              CLICK HERE
   '              Press F5 to Run!

   Dim bMaster  As Boolean 
   bMaster = True       '--------------- customize: show bMaster Layout?
      
   Dim vTitle() As String 
   Dim vMasterName() As String 
   
   Dim nSlide As Long _ 
      ,nNumSlides As Long _ 
      ,iMaxTitle As Integer _ 
      ,iLenTitle As Integer 

   nNumSlides = ActivePresentation.Slides.Count 
   ReDim vTitle(1 To nNumSlides) 
   ReDim vMasterName(1 To nNumSlides) 
      
   iMaxTitle = 0 

   For nSlide = 1 To nNumSlides 
      With ActivePresentation.Slides(nSlide) 
         vMasterName(nSlide) = _ 
            .Master.Design.Parent.CustomLayouts.Item(.CustomLayout.Index).Name 
         
         ' Does the slide have title placeholder?
         If .Shapes.HasTitle Then 
            ' Use the title shape on the slide
            With .Shapes.Title 
               ' get placeholder text - appending ZLS probably not necessary
               vTitle(nSlide) = .TextFrame.TextRange.Text &  ""
            End With 
         Else 
            vTitle(nSlide) =  "(No Title)"
         End If 
         'get maximum Title length for Tab
         iLenTitle = Len(vTitle(nSlide)) 
         If iLenTitle > iMaxTitle Then 
            iMaxTitle = iLenTitle 
         End If 
      End With  'ActivePresentation.Slides(nSlide)
   Next nSlide 
   
   Debug.Print  "-#-"; 
   Debug.Print Tab(7);  "-- Title --"; 
   If bMaster Then 
      Debug.Print Tab(10 + iMaxTitle);  "-- Master Layout --"; 
   End If 
   Debug.Print 
   
   For nSlide = LBound(vTitle) To UBound(vTitle) 
      Debug.Print nSlide; Tab(7); vTitle(nSlide); 
      If bMaster Then 
         Debug.Print Tab(10 + iMaxTitle); 
         Debug.Print vMasterName(nSlide); 
      End If 
      Debug.Print 
   Next nSlide 

End Sub 

'*************** Code End *******************************************************

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba