title: Simulate button press effect
body: <p>I have macro assigned to a rectangle shape that goes to the next sheet in my workbook.</p>
  
  <p>I'm trying to add a press down and up effect to this rectangle.</p>
  
  <p>When I use this code, the rectangle is only pressed down then then the next sheet is activated, and if I returned back to the previous sheet, the rectangle is released.</p>
  
  <p>Wht I need is that the rectangle is pressed down and then released before going to the next sheet.</p>
  
  <pre><code>Dim MyButton As Shape
  Dim oHeight, oWidth, cHeight, cWidth As Double
  Dim oTop, oLeft As Long
  
  Public Sub PressButton()
      Set MyButton = ActiveSheet.Shapes(Application.Caller)
  
      With MyButton
          'Record original button properties.
          oHeight = .Height
          oWidth = .Width
          oTop = .Top
          oLeft = .Left
          'Button Down (Simulate button click).
          .ScaleHeight 0.9, msoFalse
          .ScaleWidth 0.9, msoFalse
          cHeight = .Height
          cWidth = .Width
          .Top = oTop + ((oHeight - cHeight) / 2)
          .Left = oLeft + ((oWidth - cWidth) / 2)
      End With
  
      'Set MyButton variable to Nothing to free memory.
      Set MyButton = Nothing
  End Sub
  
  Public Sub ReleaseButton()
      Set MyButton = ActiveSheet.Shapes(Application.Caller)
  
      With MyButton
          'Button Up (Set back to original button properties).
          .Height = oHeight
          .Width = oWidth
          .Top = oTop
          .Left = oLeft
      End With
  
      'Set MyButton variable to Nothing to free memory.
      Set MyButton = Nothing
  End Sub
  
  Public Sub NextPage()
      PressButton
      Application.Wait (Now + TimeSerial(0, 0, 1))
      ReleaseButton
  
      Dim ws As Worksheet
  
      Set ws = ActiveSheet
  
      Do While Not ws.Next.Visible = xlSheetVisible
          Set ws = ws.Next
      Loop
  
      With ws.Next
          .Activate
          .Range("A1").Select
      End With
  End Sub
  </code></pre>