MS Excel | Criando Animações

MS Excel | Criando Animações

Este artigo discute (em um nível geral) uma animação recente construída em Excel / VBA usada para explicar uma técnica matemática.  


Este vídeo do YouTubeUsing Animation in Excel to explain Complex Mathematics ('Usando animação no Excel para explicar matemática complexa') demonstra isso. 


O próprio vídeo do YouTube refere-se a um curso publicado recentemente pela Udemy: 'Geometric Introduction to Markov Chain Monte Carlo' ('Introdução Geométrica à MCMC - Cadeia de Markov Monte Carlo').  


Funcionalidade de forma (shape) do Excel


O Excel  é um sistema de planilha versátil com inúmeras funcionalidades. Em grande parte devido à adequação do Excel para finanças, a maioria dos cursos concentra-se em finanças ou outras aplicações de processamento de números. Conseqüentemente, grande parte da funcionalidade do Excel é amplamente ignorada.  


Se eu parasse para escrever uma lista de funcionalidades ignoradas, seria uma lista longa. Então aqui mencionarei duas funcionalidades relacionadas. Estas são:


  • Fluxogramas.
  • Animações.


Aqui não vou discutir fluxogramas, mas vou encaminhá-los para:


Curso Udemy: Flowcharting in Microsoft Excel' (Fluxograma no Microsoft Excel). 


E aqui estou focando na animação.


VBA


Agora, antes de explicar a animação com mais profundidade, precisamos ser muito claros sobre um conceito. Para ciência de engenharia avançada e aplicações de engenharia, o Excel é seriamente limitado se não for usado com o VBA - Visual Basic for Applications – a linguagem de software disponível gratuitamente no Excel.


Imagens e formas do Excel


A maioria dos usuários do Excel pode acessar facilmente formas (shape) e imagens no Excel.   


Quando se trata de VBA, imagens e formas (shape) têm semelhanças e diferenças. 


Uma forma (shape) é um objeto amplamente definido por seu contorno (aqui chamado de formato vetorial, gráficos vetoriais - Wikipedia). Uma imagem é um objeto amplamente definido por pixels (aqui chamado de formato raster, gráficos raster - Wikipedia ). É difícil colocar os pixels dentro de uma forma (shape).  


No entanto, se criarmos uma forma (shape) no Excel, há pelo menos duas coisas úteis que podemos fazer: 


1. Podemos nomear a forma (shape).

2. Podemos mover a forma (shape).


Movendo a forma usando VBA


Mover a forma (shape) é obviamente trivial; e se você conhece o básico do VBA, também saberá que pode usar a macro de registro para determinar o código necessário para mover uma forma (shape).


Este código move o shape para a nova posição especificada por valores de coordenadas X e Y.


Sub MoverShape()

    ' Sub-rotina para mover uma shape

    

    ' Declaração das variáveis

    Dim shp As Shape ' Variável para armazenar a shape que será movida

    Dim newX As Integer ' Nova posição X da shape

    Dim newY As Integer ' Nova posição Y da shape

    

    ' Define a shape que será movida (substitua "NomeDaShape" pelo nome da sua shape)

    Set shp = Me![NomeDaShape]

    

    ' Define as novas coordenadas para a posição da shape (substitua os valores de newX e newY conforme necessário)

    newX = 100

    newY = 100

    

    ' Move a shape para as novas coordenadas

    shp.Left = newX

    shp.Top = newY

    

    ' Onde:

    ' shp.Left representa a posição horizontal (X) da shape

    ' shp.Top representa a posição vertical (Y) da shape

    

    ' Você também pode usar outras propriedades, como shp.Width e shp.Height, para ajustar o tamanho da shape, se necessário.

    

    ' Exemplo de uso para ajustar o tamanho:

    ' shp.Width = 200 ' Define a largura da shape para 200 unidades

    ' shp.Height = 100 ' Define a altura da shape para 100 unidades

End Sub


Este código assume que você tem uma forma (shape) em um formulário do Microsoft Access e deseja movê-la para uma nova posição. Substitua "NomeDaShape" pelo nome real da sua shape no formulário e ajuste as coordenadas newX e newY conforme necessário para mover a shape para a posição desejada.

 

O código acima é usado apenas como exemplo de como o código VBA pode ser construído usando a macro de registro. Em geral, seria possível personalizar o código para a aplicação específica. Ou seja, a capacidade de usar Record Macro não faz de você um especialista em VBA.


10 Exemplos

 

Abaixo estão 10 exemplos de código VBA Excel para criar animações com objetos shape:


```vba

Sub Animação1()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um retângulo na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 50, 50)

    

    ' Animação de movimento horizontal

    For i = 1 To 100

        shp.Left = shp.Left + 1

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação2()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um círculo na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 50, 50)

    

    ' Animação de mudança de cor

    For i = 1 To 100

        shp.Fill.ForeColor.RGB = RGB(255, i * 2, 0)

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação3()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona uma estrela na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShape5pointStar, 100, 100, 50, 50)

    

    ' Animação de rotação

    For i = 1 To 360

        shp.Rotation = i

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação4()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um triângulo na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeIsoscelesTriangle, 100, 100, 50, 50)

    

    ' Animação de crescimento

    For i = 1 To 50

        shp.Height = shp.Height + 1

        shp.Width = shp.Width + 1

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação5()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona uma seta na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeRightArrow, 100, 100, 50, 50)

    

    ' Animação de transparência

    For i = 1 To 100

        shp.Fill.Transparency = i

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação6()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um losango na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeDiamond, 100, 100, 50, 50)

    

    ' Animação de oscilação

    For i = 1 To 10

        shp.Top = shp.Top + 5

        Application.Wait (Now + TimeValue("0:00:01"))

        shp.Top = shp.Top - 5

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação7()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um pentágono na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeRegularPentagon, 100, 100, 50, 50)

    

    ' Animação de piscar

    For i = 1 To 10

        shp.Visible = Not shp.Visible

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação8()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um retângulo arredondado na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 100, 100, 50, 50)

    

    ' Animação de mudança de tamanho e rotação

    For i = 1 To 90

        shp.Width = shp.Width + 1

        shp.Height = shp.Height - 1

        shp.Rotation = shp.Rotation + 1

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação9()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um coração na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeHeart, 100, 100, 50, 50)

    

    ' Animação de movimento diagonal

    For i = 1 To 100

        shp.Top = shp.Top + 1

        shp.Left = shp.Left + 1

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Sub Animação10()

    Dim shp As Shape

    Dim i As Integer

    

    ' Adiciona um quadrado na planilha

    Set shp = ActiveSheet.Shapes.AddShape(msoShapeSquare, 100, 100, 50, 50)

    

    ' Animação de mudança de transparência e cor

    For i = 1 To 100

        shp.Fill.Transparency = i

        shp.Fill.ForeColor.RGB = RGB(i * 2, i, i * 2)

        Application.Wait (Now + TimeValue("0:00:01"))

    Next i

End Sub


Estes códigos criam diferentes animações utilizando objetos shape em uma planilha do Excel. Cada sub-rotina (`Sub`) adiciona um shape específico e aplica uma animação diferente. As animações incluem movimento, mudança de cor, rotação, mudança de tamanho, oscilação, piscar, entre outras.


Este documento é muito breve – principalmente porque criar animações no Excel é simples, desde que você conheça algumas etapas básicas.


  Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com


 Série Donut Project 
DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Clique nas capas abaixo e compre também: 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)


Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel (Série Top 10 Funções - Microsoft Excel)


eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

Nenhum comentário:

Postar um comentário

diHITT - Notícias