
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 *******************************************************