Macro presentación aleatoria para OpenOffice Impress

Macro presentación aleatoria para OpenOffice Impress

¿Necesitas que tu presentación Impress se muestre cada vez que la ejecutas con un orden de diapositivas distinto?

¿Y que ese orden sea aleatorio?

Esta macro te da una sencilla y fácil solución.

Además, te indicamos como integrar la macro en tu OpenOffice y asignarla a un botón en la barra de herramientas Presentación.

 

Código de la macro

Sub Presentacion_Aleatoria
    Dim i as Integer, x as Integer, nAleatorio as Integer
    Dim oDocumento as Object, oPaginas as Object, nContador as Integer
    Dim oPresentacionPersonalizada as Object, nContadorDiapos as Integer
    Dim oTmp as Object, oDiapoAleatoria as Object, oPrimeraPagina as Object
    Dim oControlActual as Object, oPresentacion as Object

    oDocumento = ThisComponent
    oPaginas = oDocumento.getDrawPages
    nContador = oPaginas.Count

    Dim aListaActual(nContador-1) as Integer
    Dim aListaAleatoria(nContador-1) as Integer
    Dim aListaTemp(nContador-1) as Integer

    For i = 0 to nContador-1
        aListaActual(i) = i
    Next i

    For x = nContador-1 to 0 Step -1
        Redim aListaTemp(x)
        nAleatorio = Int(Rnd*(x+1))
        aListaAleatoria(nContador-1-x) = aListaActual(nAleatorio)
        If x > 0 then
            If nAleatorio > 0 then
                For i = 0 to nAleatorio - 1
                    aListaTemp(i) = aListaActual(i)
                Next i
            End If
            If nAleatorio < x then
                For i = nAleatorio + 1 to x
                    aListaTemp(i-1) = aListaActual(i)
                Next i
            End If
            Redim aListaActual(x-1)
            aListaActual() = aListaTemp()
        End If
    Next x

    oPresentacionPersonalizada = oDocumento.getCustomPresentations()
    If oPresentacionPersonalizada.hasByname("MiPresentacion") Then
        oTmp = oPresentacionPersonalizada.getByName("MiPresentacion")
        nContadorDiapos = oTmp.Count
        If nContadorDiapos > 0 then
            For x = 0 to nContadorDiapos -1
                oTmp.removeByIndex(0)
            Next x
        End If
    Else
        oTmp = oPresentacionPersonalizada.createInstance()
        oPresentacionPersonalizada.insertByName("MiPresentacion", oTmp)
        oTmp = oPresentacionPersonalizada.getByName("MiPresentacion")
    End If

    For x = 0 to nContador-1
        oDiapoAleatoria = oPaginas.getByIndex(aListaAleatoria(x))
        oTmp.insertByIndex(x, oDiapoAleatoria)
    Next x

    oPrimeraPagina = oPaginas.getByIndex(aListaAleatoria(0))
    oControlActual = oDocumento.currentController
    oControlActual.select(oPrimeraPagina)
    oPresentacion = oDocumento.Presentation
    oPresentacion.CustomShow = "MiPresentacion"
    oPresentacion.Start()
End Sub

En el código de la macro se ha seguido la siguiente nomenclatura:

  • Objetos: su nombre empieza por o (de Object)
  • Contadores: su nombre empieza por n (de Numeric)
  • Matrices: su nombre empieza por a (de Array)

Agregar una macro a OpenOffice

Para agregar esta macro a tu OpenOffice sigue los siguientes pasos:

  1. Selecciona y copia el código desde este artículo
  2. En OpenOffice selecciona desde el menú Herramientas > Macros > Organizar macros > OpenOffice.org Basic
  3. Selecciona Mis macros > Standard > Module1 y haz clic sobre el botón Editar
  4. Pega el código debajo de la declaración Sub Main / End Sub y cierra el editor de macros

Agregar una macro a una barra de herramientas en OpenOffice

Para agregar esta macro a tu barra de herramientas Presentación sigue los siguientes pasos:

  1. Desde el triángulo situado al final de la barra de herramientas Presentación selecciona Personalizar barra de herramientas...
  2. Haz clic sobre el último comando de la barra de herramientas (por defecto, Presentación)
  3. Haz clic sobre el botón Agregar...
  4. En la lista Categoría localiza y selecciona Macros de OpenOffice.org > Mis macros > Standard > Module1
  5. En la lista Comandos selecciona Presentación_Aleatoria y haz clic en Agregar y luego en Cerrar.
  6. Haz clic en el botón Modificar > Renombrar... y cambia el nombre a Aleatoria (o el que prefieras); haz clic sobre el botón Aceptar
  7. Haz clic sobre el botón Aceptar

Ya sólo queda que abras tu presentación y pruebes el nuevo botón.

Macro basada en un artículo del Foro Oficial de Apache OpenOffice en Español.

No hay reacciones, todavía


Form is loading...