Есть ли возможность вызвать макрос просто наведя мышь с нажатой ЛКМ на фигуру, которой назначен сей макрос? Если есть, тогда как это можно реализовать?
Что то я не понимаю как это выглядит. А где вы нажать должны? Если на ячейку, то происходит выделение. А вообще можно.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Стырил тут код, который отслеживает нажатие кнопок мыши. А в части проверки того, что мышка над кнопкой, есть событие mouseMove.
Код
'Extraido de la web http://www.codeguru.com/vb/gen/vb_misc/article.php/c2757
'Tras consulta de trastrestris en codeguru: How to detect a mouse event click
Option Explicit
Public Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
Public Const VK_LBUTTON = &H1
Public Const VK_RBUTTON = &H2
Public Sub Form_Load()
Timer1.Interval = 100
End Sub
Public Sub Timer1_Timer()
While (1)
If GetAsyncKeyState(VK_LBUTTON) Then
Sheets("Hoja1").Pruebas.Value = "Left Click"
ElseIf GetAsyncKeyState(VK_RBUTTON) Then
Sheets("Hoja1").Pruebas.Value = "Right Click"
Else
Sheets("Hoja1").Pruebas.Value = "LOL"
End If
DoEvents: DoEvents: DoEvents: DoEvents: DoEvents
Wend
End Sub
'
1. Согласен, тут нужен элемент ActiveX. 2. Потестил, теперь тоже согласен. Если в фокусе другой объект и нажата левая кнопка мыши, то mouseMove не срабатывает.
Андрей_26 написал: А почему кнопка обязательно должна быть нажата ? Просто навести ни как ?
Цитата
Alemox написал: Что то я не понимаю как это выглядит. А где вы нажать должны?
Должна быть нажата для удобства заполнения диапазона цветом. На ячейках - фигуры с макросом, окрашивающим ячейку. Я жму на ячейку, и не отпуская веду курсор до границы закрашивая ячейки, это удобней, чем красить кликая по каждой.