Não há OnMouseOver no Excel VBA. Eu não acredito que isso possa ser feito.
Eu não consegui descobrir como executar uma macro do Excel movendo meu mouse sobre uma ou mais células na minha planilha.
Não há OnMouseOver no Excel VBA. Eu não acredito que isso possa ser feito.
Embora não exista um evento OnMouseOver formal, você pode montar um hack do VBA para contorná-lo. Envolve o uso da função HYPERLINK. Há mais detalhes aqui , mas em resumo:
Se você criar um novo módulo VBA e adicionar uma função definida pelo usuário para fazer o que quiser:
Public Function OnMouseOver()
Sheet1.Range("A2").Value = "You hovered over a cell"
End Function
Você pode acessá-lo através de uma ligação HYPERLINK:
=IFERROR(HYPERLINK(OnMouseOver(),"Click here"), "Click here")
Observe que ele está dentro de um IFERROR para evitar um valor de #VALUE! mensagem de erro porque sua função não deve atualizar uma célula (mas sai impune como é chamado dentro do HYPERLINK).
A abordagem do HYPERLINK é fofa, muito perspicaz, mas ainda profundamente limitada. Por exemplo. você não pode sequer ter sStr="" no código UDF (note que os resultados podem variar de acordo com a versão do Excel). Muito melhor é um rótulo transparente (ou mesmo opaco), que possui a propriedade MouseMove. Coloque o seu código lá. (Eu localizei um link de vídeo que quase perfeitamente dá a você passo a passo em menos de 4 minutos, com comentários ainda melhores; se eu criasse um guia passo-a-passo aqui você gastaria meia hora :) . Mas se eu mostrar o link, este post será excluído [novamente] pelo Stack Exchange, portanto PM se quiser, e tentarei responder em alguns dias.)
Você pode usar o ActiveX Label transparente ( .BackStyle = fmBackStyleTransparent
, .Caption = ""
, .Visible = True
) nas células e lidar com o MouseMove
event:
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Debug.Print Button, Shift, X, Y
End Sub
Quando a propriedade .Visible
do rótulo estiver definida como False, o evento MouseMove
não será acionado, mas as células por trás dele poderão ser clicadas (e vice-versa).
Tags microsoft-excel vba