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 YouTube: Using 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
```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
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
Nenhum comentário:
Postar um comentário