Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

Mostrando postagens com marcador logomarca. Mostrar todas as postagens
Mostrando postagens com marcador logomarca. Mostrar todas as postagens

VBA Excel - Inserindo uma logomarca animada - Animating Your Company’s Logo in Excel




As Logomarcas são uma maneira fácil de adicionar um senso de profissionalismo ao trabalho que estamos entregando. 

Telas iniciais e logotipos são parte de cada produto de software que adquirimos e também devem ser parte integrante de cada aplicação que você fornecer ao seu Cliente. 

Agora, se o seu logo for animando...Isso será ainda mais divertido! 

Além de divertir os usuários, definirá o seu trabalho para além da média com um desenvolvedor de aplicações para o Excel.

Eu procuro usá-los quando a primeira pasta de trabalho é aberta (Passo-a-passo até para os iniciantes hein!):

- Abra uma pasta de trabalho em branco

- Renomeie a primeira guia "Dados"

- Esta será a planilha exibida quando o nosso workbook for aberto

- Agora, obtenha uma cópia animada do logotipo da sua empresa

  No site da sua empresa provavelmente tem um com o tamanho certo

- Cole-o na planilha de dados

- Precisamos de nomeá-lo "Logo"

- Selecione-o, e em seguida, use Alt-F11 para chegar ao Editor do Visual Basic

- Use Ctrl-R para abrir o Project Explorer

- Dê um duplo clique em "ThisWorkbook" (ou EstaPasta_de_trabalho) 
Isso traz à tona a janela de código da pasta de trabalho. 

- Essa rotina deve ser executada logo que o workbook for aberto, por isso vamos codificá-la em Workbook_Open

- Esta rotina ativavá a aba que renomeamos para "Data", e em seguida passa à nossa "Logo" para duas rotinas. 

- A primeira faz "crescer" a nossa logomarca. 

- A segunda faz girá-la uma vez.




Private Sub Workbook_Open()

    Worksheets("Dados").Activate
    ActiveSheet.Shapes("Logo").LockAspectRatio = False
    GrowShape ActiveSheet.Shapes("Logo"), 10
    SpinShape ActiveSheet.Shapes("Logo"), 10
           
End Sub


A rotina GrowShape expandirá qualquer shape à vista. Primeiro desligará atualização de tela. Isso nos permitirá fazer alterações nos bastidores e exibir os resultados quando estivermos prontos. 

Em seguida, a rotina GrowShape se lembrará das dimensões do shape. Em seguida, a rotina muda o tamanho do shape, exibe-o, congela a tela e faz loops até terminar. Antes de finalizar, a rotina GrowShape garante que o shape está exatamente como o encontramos.

A rotina SpinShape é quase idêntica. Congela a tela, lembra as dimensões originais do shape, em seguida, altera o tamanho do shape num circuito que simula-o girando em torno do seu eixo Y. Quando termina, a rotina SpinShape restaura o shape ao seu tamanho original.

Isso é tudo o que precisamos para animarmos um logotipo!

Function GrowShape (ByRef Shape As Shape, Step As Integer) As Boolean
'   Description:Expands a shape into view
'   Parameters: Shape       The shape to animate
'               Step        Larger #s animate faster
'   Example:    GrowShape ActiveSheet.Shapes("Logo"), 10
'   Note:       For best results, shape should be hidden before calling
'               this routine
'     Date   Init Modification
'   01/10/11 CWH  Initial Programming
    Dim lCenterX As Long    'Shape's center X coordinate
    Dim lCenterY As Long    'Shape's center Y coordiante
    Dim lWidth   As Long    'Shape's width
    Dim lHeight  As Long    'Shape's height
    Dim l        As Long    'Generic Counter for the loop
   
    Application.ScreenUpdating = False
   
    With Shape
       'Remember shape's original dimensions
        lCenterX = .Width / 2 + .Left
        lCenterY = .Height / 2 + .Top
        lWidth = .Width
        lHeight = .Height
       'Animation Loop
        For l = 0 To lWidth Step Step
            .Width = l
            .Height = l * lHeight / lWidth
            .Left = lCenterX - .Width / 2
            .Top = lCenterY - .Height / 2
            Shape.Visible = True
            Application.ScreenUpdating = True
            Application.ScreenUpdating = False
        Next l
       'Restore shape's original dimensions
        .Width = lWidth
        .Height = lHeight
        .Left = lCenterX - .Width / 2
        .Top = lCenterY - .Height / 2
    End With
   
    Application.ScreenUpdating = True
End Function
Function SpinShape (ByRef Shape As Shape, Step As Integer) As Boolean
'   Description:Expands a shape into view
'   Parameters: Shape       The shape to animate
'               Step        Larger #s animate faster
'                           Steps should divide 90 evenly
'   Example:    SpinShape ActiveSheet.Shapes("Logo"), 10
'     Date   Init Modification
'   01/10/11 CWH  Initial Programming
   
    Const Pi = 3.14159265358979
    Dim sng01 As Single     '1 Degree in Radians
        sng01 = Pi / 180
       
    Dim lCenterX As Long    'Shape's center X coordinate
    Dim lCenterY As Long    'Shape's center Y coordiante
    Dim lWidth   As Long    'Shape's width
    Dim lHeight  As Long    'Shape's height
    Dim l        As Long    'Generic Counter for the loop
   
    Application.ScreenUpdating = False
   
    With Shape
        .LockAspectRatio = False
       'Remember shape's original dimensions
        lCenterX = .Width / 2 + .Left
        lCenterY = .Height / 2 + .Top
        lWidth = .Width
        lHeight = .Height
       'Animation Loop
        For l = 0 To 360 Step Step
            .Width = lWidth * Abs(Cos(l * sng01))
            .Left = lCenterX - .Width / 2
            If l = 90 Or l = 270 Then .Flip msoFlipHorizontal
            Shape.Visible = True
            Application.ScreenUpdating = True
            Application.ScreenUpdating = False
        Next l
       'Restore shape's original dimensions
        .Width = lWidth
        .Height = lHeight
        .Left = lCenterX - .Width / 2
        .Top = lCenterY - .Height / 2
    End With
   
    Application.ScreenUpdating = True
End Function


Tags: VBA, Excel, development, Microsoft Excel, tutorial, logo, logomarca, animar, animated,


diHITT - Notícias