Страницы: 1
RSS
Срабатывание макроса при наведении мыши с нажатой кнопкой на кнопку макроса
 
Есть ли возможность вызвать макрос просто наведя мышь с нажатой ЛКМ на фигуру, которой назначен сей макрос?
Если есть, тогда как это можно реализовать?
Изменено: OSA913 - 19.12.2019 06:38:06
 
А почему кнопка обязательно должна быть нажата ? Просто навести ни как ?
 
Что то я не понимаю как это выглядит. А где вы нажать должны? Если на ячейку, то происходит выделение. А вообще можно.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Alemox написал:
А вообще можно.
но осторожно. Стандартных событий таких нет, а отслеживать положение курсора в цикле - ну совсем не правильно.
По вопросам из тем форума, личку не читаю.
 
Стырил тут код, который отслеживает нажатие кнопок мыши. А в части проверки того, что мышка над кнопкой, есть событие 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
'
Изменено: Wiss - 19.12.2019 14:46:34
Я не волшебник, я только учусь.
 
Wiss, Два ограничения, не все фигуры имеют это событие, и низя чтоб выделение ячеек срабатывало, что заблокировано защитой листа.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Два ограничения
1. Согласен, тут нужен элемент ActiveX.
2. Потестил, теперь тоже согласен. Если в фокусе другой объект и нажата левая кнопка мыши, то mouseMove не срабатывает.
Я не волшебник, я только учусь.
 
Цитата
Андрей_26 написал:
А почему кнопка обязательно должна быть нажата ? Просто навести ни как ?
Цитата
Alemox написал:
Что то я не понимаю как это выглядит. А где вы нажать должны?
Должна быть нажата для удобства заполнения диапазона цветом. На ячейках - фигуры с макросом, окрашивающим ячейку. Я жму на ячейку, и не отпуская веду курсор до границы закрашивая ячейки, это удобней, чем красить кликая по каждой.

Вот приложил пример файла.
Изменено: OSA913 - 21.12.2019 01:19:12
 
БМВ, Wiss спасибо, попробую разобраться.
 
OSA913, Посмотрите https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=110831&TITLE_SEO=110831-kak-vydelit-ne-aktivnuyu-yacheyku-na-kotoruyu-naveden-kursor-myshi&MID=920122#message920122, может на этой базе получите Вашу хотелку.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх