Desafortunadamente VBA es antiguo y pobre y carece de características como estas, simebargo con la astucia de los usuarios a lo largo del tiempo se encuentran las maneras de sortear estas limitaciones. Rustica y poco ideal, pero la más común y popular forma de hacerlo es usando 2 Labels en vez de uno. El segundo Label debe ser un poco más grande e ir detrás de los otros elementos. Te he hecho un ejemplo, debido a que el grabador solo permite grabar 60 segundos, esta dividido en dos partes:
Video demo Parte 1
Video demo Parte 2
Como veras, hice un efecto de cambio de color en un Shape imitando un Mousehover HTML
El label encima del shape cambia su color, y el label detrás que ocupa un poco más de espacio, devuelve el shape a su color original.
El código es el siguiente:
Private Sub secundario_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With Sheets("Sheet1").Shapes("Boton_Shp")
.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent5
End With
End Sub
Private Sub primario_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With Sheets("Sheet1").Shapes("Boton_Shp")
.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent1
End With
End Sub
Andy