none
Formato UserPicture VBA Power Point RRS feed

  • Pergunta

  • Olá!

    Eu preciso de ajuda, pois estou fazendo um jogo no Power point e consegui fazer um código para o boneco andar usando um método de frame que inventei e o formato UserPicture para selecionar a imagem ao andar. Porém só consigo utilizar uma imagem colocando o caminho onde ela se encontra. Ex: C:/Programas...

    Esse é o código:

    Personagem.Fill.UserPicture "C:\Users\ab1176147\Desktop\Game Mundo aberto\EsquerdaAndando"

    O problema é que enviarei esse material por e-mail e quando a pessoa baixar, não vai ter acesso a imagem do caminho. E mesmo se eu enviar uma pasta com as imagens, ele retorna exatamente o caminho descrito a cima, fazendo com que a pessoa tenha que alterar nocódigo.

    Teria como, de alguma forma, eu inserir as imagens do lado de fora do slide e puxar elas como referência? Se não teria alguma outra forma?

    Desde já agradeço a ajuda.

     

    terça-feira, 4 de fevereiro de 2020 18:50

Todas as Respostas

  • Você poderia utilizar o caminho da apresentação ou uma subpasta, como por exemplo:

    Personagem.Fill.UserPicture Application.ActivePresentation.Path & "\Sua Pasta\Seu arquivo.jpg"

    Funciona desta forma?


    Filipe Magno

    quarta-feira, 5 de fevereiro de 2020 02:14
  • Então, não deu certo.

    Será que não tem uma forma de não colocar caminho, e sim uma imagem que está no próprio slide?

    quarta-feira, 5 de fevereiro de 2020 20:14
  • Imagino que sim, mas eu somente estou familiarizado com o VBA do Excel. Do Power Point nunca me aventurei. Talvez alguém mais possa ajudar.

    Só uma dúvida: da forma que coloquei não funcionou para imagens enviadas na mesma pasta (ou subpasta) da apresentação?


    Filipe Magno

    quinta-feira, 6 de fevereiro de 2020 01:00
  • Vou colocar aqui o código do frame que utilizei:

    Esse é uma parte do primeiro, onde ao clicar no botão esquerdo ele faz as ações com as descrições a baixo

    Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim Personagem As Shape
    Set Personagem = Shapes("pbaixo")
    
    
    If KeyCode = vbKeyLeft Then
    Personagem.Left = Personagem.Left - 5
    Label1.Caption = "" & Val(Replace(Label1.Caption, "", "")) + 1
    'Ao clicar a seta esquerda, o personagem anda e a Label soma +1 sempre que pressionado
        If Label1.Caption = "10" Then
        Label1.Caption = ""
        'Quando ela chega no 10, ela 0 recomeçando de novo
        End If
    esquerda

    E o segundo é o método de "frame" que comentei, porém ele da o erro ao enviar

    Sub esquerda()
    Dim Personagem As Shape
    Set Personagem = Shapes("pbaixo")
    
    If Label1.Caption = "1" Then
    Personagem.Fill.UserPicture "C:\Users\ab1176147\Desktop\Game Mundo aberto\EsquerdaAndando.png"
    ElseIf Label1.Caption = "4" Then
    Personagem.Fill.UserPicture "C:\Users\ab1176147\Desktop\Game Mundo aberto\Esquerda.png"
    ElseIf Label1.Caption = "7" Then
    Personagem.Fill.UserPicture "C:\Users\ab1176147\Desktop\Game Mundo aberto\EsquerdaAndando2.png"
    End If
    End Sub

    Quando uso o código que me passou, da erro de FillFormat. Tentei das seguintes formas:

    Personagem.Fill.UserPicture Application.ActivePresentation.Path & "\World\EsquerdaAndando.jpg"
    
    Personagem.Fill.UserPicture Application.ActivePresentation.Path & "\Game Mundo aberto\EsquerdaAndando.png"

    Desculpa o trabalho. Esse material ficou parado um tempo por outras prioridades no trabalho e acabei me enferrujando um pouco em VBA.

    quinta-feira, 6 de fevereiro de 2020 12:08
  • Cara Deu certo!!

    Eu não estava entendendo o código mas agora vi como ele puxa a referência! Como disse to enferrujado.

    Muito Obrigado!

    quinta-feira, 6 de fevereiro de 2020 14:07