Power Point - Determinar el número de diapositivas a reproducir

 
Vista:
Imágen de perfil de campo

Determinar el número de diapositivas a reproducir

Publicado por campo (2 intervenciones) el 26/02/2017 22:05:39
Hola:

Me gustaría controlar en PowerPoint un número determinado de diapositivas a reproducir dentro del rango total de la presentación. Este número se pediría a través de una InputBox y debería estar entre los límites determinados (número máximo de diapositivas)

La presentación es una secuencia de imágenes de música (compases) que se reproducen aleatoriamente (el código de desordenación funciona) y que están sujetas a unas animaciones temporizadas con sonido que simulan el funcionamiento periódico de un metrónomo.

La idea es representar las múltiples posibilidades de combinaciones de patrones rítmicos y melódicos y que la presentación las muestre cada vez en un orden distinto (hasta aquí lo he conseguido)

Pero también quiero delimitar el número de diapositivas a mostrar (compases) simulando la reproducción de un ejercicio musical.

Ya avanzo que no tengo ni idea de las funciones vba de PowerPoint aunque sí un poquito de VisualBasic.

El código que estoy empleando es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub desordena()
Dim DiapMax As Integer
Dim DiapMin As Integer
Dim DiapDesde As Integer
Dim DiapHasta As Integer
Dim loop1 As Integer
Dim CompasMax As Integer
Dim CompasMin As Integer
Dim loop2 As Integer
DiapMax = ActivePresentation.Slides.Count
DiapMin = 2
If DiapMax > ActivePresentation.Slides.Count Or DiapMin < 1 Then GoTo err
For loop1 = 1 To 2 * DiapMax
Randomize
DiapDesde = Int((DiapMax - DiapMin + 1) * Rnd + DiapMin)
DiapHasta = Int((DiapMax - DiapMin + 1) * Rnd + DiapMin)
ActivePresentation.Slides(DiapDesde).MoveTo (DiapHasta)
Next loop1
MsgBox "Se ha alterado el orden de las láminas"
CompasMax = InputBox("Introduce el número de compases entre 2 y " & DiapMax)
CompasMin = 2
If CompasMax > ActivePresentation.Slides.Count Or CompasMin < 2 Then GoTo err
loop2 = 2
If loop2 <= CompasMax Then
SlideShowWindows(loop2).View.Next
loop2 = loop2 + 1
Else
MsgBox "Finalizó la secuencia. Pulsa Aceptar para comenzar de nuevo y Esc para salir"
End If
Exit Sub
err:
MsgBox "El número introducido excede los límites indicados", vbCritical
End Sub

En el modo de depuración, me indica un error en la línea "SlideShowWindows(loop2).View.Next"

Sé que está mal. He intentado un método muy inocente y estoy convencido de que no puede ser tan sencillo.

Agradecería cualquier ayuda a este respecto.

Muchísimas gracias de antemano.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de campo

Determinar el número de diapositivas a reproducir

Publicado por campo (2 intervenciones) el 28/02/2017 16:47:13
Hola:

Un apunte más al respecto de este hilo, sé que debo utilizar propiedades como:
1
2
.StartingSlide = ini
.EndingSlide = fin

...donde ini y fin son las variables que he definido para indicar mediante inputbox la diapositiva de inicio y de final y así determinar la longitud de la presentación.

pertenecientes a
1
.SlideShowSettings
pero no sé cómo utilizarlo.

Hasta donde llega mi entender creo que he de usar la siguiente entrada:
1
Application.Presentations("Láminas de música 2º.ppsm").SlideShowSettings
y despues continuar con:
1
2
.StartingSlide = ini
.EndingSlide = fin

pero ya no sé cómo seguir.

Supuestamente he variado las condiciones de comienzo y final de la presentación pero luego no hace lo que parece que se le ha indicado.

En fin, si alguien puede echarme un cable. Estoy muy empecinado con ésto, casi tanto como atascado.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar