none
Macro no Power Point 2010 RRS feed

  • Pergunta

  • Bom Dia Gente!

    Estou montando uma "apresentação interativa" com cerca de 60 slides e preciso montar uma instrução (tipo macro) que permita que o usuário acesse os slides aleatórios durante a apresentação sem ter que para-lá para selecionar estes slides, a idéia é pressionar uma determinada tecla (tipo tecla de atalho) e já ir direto para o slide desejado. Detalhe: o único dispositivo que o usuário terá acesso é um teclado numérico comum. Vou tentar explicar melhor com este exemplo:

    Inicio a apresentação...rodo 4 slides e quando entrar no 5o. o usuário tem a opção de continuar a apresentação ou ir para um outro tema. Se não pressionar nenhuma tecla a apresentação continua, se optar por mudar de tema, terá que pressionar a tecla número "1" (por exemplo) e apresentação vai para o slide 10, ou pressiona tecla "2" e apresentação vai para o slide 15 e assim por diante! Terei que ter esta instrução em cada slide de modo que o usuário possa mudar e de tema ou retornar á pagina inicial quando quiser!

    Outro detalhe importante: não poderá aparecer nenhuma caixa de diálogo ou texto durante a apresentação de nenhum dos slides, ou seja, o usuário poderá a qualquer momento,  pressionar a tecla e mudar o tema!

    Já consegui mudar os slides através do comando: ActivePresentation.SlideshowWindow.View.GotoSlide() mas não estou conseguindo a instrução para identificar a tecla e coloca-la em cada slide!

    Se alguém puder me ajudar ficarei muito grato! Abraço"

    terça-feira, 14 de julho de 2015 11:42

Todas as Respostas

  • Olá,

    O formato de objetos do Powerpoint não possui o evento "On Key" que é o que captura as teclas pressionadas durante a apresentação.

    Fazer algo que não envolva a inclusão de algum objeto na apresentação não me parece possível.

    terça-feira, 14 de julho de 2015 20:27
  • Existe uma maneira de criar um temporizador que verifica as teclas pressionadas e dispara determinado evento.

    Option Explicit
    
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
    Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
    ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    
    Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
    
    Sub Macro1()
    
        SetTimer 0, 0, 10, AddressOf TimerProc
    
    End Sub
    
    Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
    
        If GetAsyncKeyState(54) Then ActivePresentation.SlideshowWindow.View.GotoSlide()
        If GetAsyncKeyState(65) Then ActivePresentation.SlideshowWindow.View.GotoSlide()
       
    End Sub

    No caso acima é chamada a tua linha de código para trocar o slide quando as teclas 6 e A são pressionadas.

    54 é o código ASCII do 6

    65 é o código ASCII do A

    No entanto, este "espião" é registrado a nível de sistema e afeta o Windows em um todo. Assim, é preciso treino para manejar esta funcionalidade.

    É necessário também rodar uma macro para matar o temporizador com a instrução KillTimer 0, 0

    Ainda acredito que o modo correto de se disparar uma macro quando pressionada uma tecla no PowerPoint seja associar a macro à tecla conforme explicado no link:

    http://www.brighthub.com/computing/windows-platform/articles/10797.aspx

    sábado, 18 de julho de 2015 06:04
  • ROC.SP,

    uma saída muito simples e nativa seria vc indicar o número do slide que a pessoa pode escolher. Pouca gente sabe, mas se vc digitar o número do slide e Enter a apresentação vai diretamente para o slide digitado! O único detalhe é que o número corresponde ao número real e não o que aparece no rodapé (caso decida por não numerar a primeira página, por exemplo).

    Abraço.


    Filipe Magno

    sábado, 18 de julho de 2015 17:06
  • Interessante, eu não sabia dessa.
    sábado, 18 de julho de 2015 17:53
  • Olá Paulo,

    Desculpe a demora em responde mas tive alguns probleminhas e fique sem acessar o fórum alguns dias mas vamos lá! Já me disseram sim que capturas/inserção de dados em apresentações sendo executadas no power point é algo muito difícil mesmo mas tem soluções possíveis e acho que nossos colegas André e Felipe deram algumas sugestões!Mas agradeço muito pelo seu interesse e resposta!

    Grato!

    ROC

    terça-feira, 21 de julho de 2015 14:49
  • Olá André, Desculpe a demora em responde mas tive alguns probleminhas e fique sem acessar o fórum alguns dias mas vamos lá!

    Achei a solução bastante viável e vou estudar e testá-la com muito cuidado pois ainda não me sinto preparado para manejar este tipo de funcionalidade, sou novato em programação!

    Valeu e Obrigado pela Ajuda!

    ROC

    terça-feira, 21 de julho de 2015 14:53
  • Olá Felipe,

    Da mesma forma, Desculpe a demora em responde mas tive alguns probleminhas e fique sem acessar o fórum alguns dias mas vamos lá!

    Cara! achei esta saída muito boa mesmo! (e acho mesmo que muita gente não sabia).Tá certo que não é uma "solução a nível de programação" (e vou ter que alterar o lay-out da apresentação origina)l mas na prática penso que vai funcionar legal. Este é o tipico caso que se enquadra naquele velho do ditado que diz: "A ordem dos fatores não altera o produto".

    Brigadão!!!

    ROC

    terça-feira, 21 de julho de 2015 14:59