mungkin bisa untuk menambah pengetahuan, bisan digunakan untuk menu pembukaan

http://itknowledgeexchange.techtarget.com/beyond-excel/animating-your-companys-logo-in-excel/

Private Sub Workbook_Open()

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

End Sub


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

Kirim email ke