Страницы: 1
RSS
Worksheet_Change для картинок и фигур
 
Доброй ночи всем форумчанам. Собственно в названии темы вопрос: как  реализовать события  на изменения листа, чтобы вместо target as range было target as shape.
Т.е. необходима реакция на изменения картинок их удаление, перемещение и тд. Возможно ли это? Вообще цель у меня конкретная. Запретить изменять фигуры и картинки, но так чтобы можно было их выделять.
 
нет такого
только если по таймеру, несколько раз в секунду, перебирать все картинки, проверяя, всё ли на месте

вообще, очень плохая идея
я бы иначе сделал, - всем картинкам бы назначил один и тот же макрос, и включил защиту на листе
и картинку не удалить, и щелкнуть на ней можно (макрос сработает, и сможет узнать, с какой картинки его вызвали)
 
Игорь. Мне надо чтобы пользователь видел реперные блоки при выделении. Когда блокируешь картинку, мне не совсем понятно как это обеспечить. Я готов отказатся и от блоков.Лишь бы соблюдались вышеперечисленные условия. А что за макрос вы бы назначили?
 
при выделении чего?
картинка хоть выделена, хоть не выделена, - она всё равно видна
проблема непонятна
 
Если  заблокировать , то не будет выделен объект
Изменено: Sla_0412 - 09.04.2017 12:03:10
 
можно сделать макрос (запускаемый по щелчку на любой картинке), который подсвечивает картинку
смотрите пример во вложении (пощелкайте на фигурах. Лист защищен)

Код
Sub SelectShape()    ' © 2017 ExcelVBA.ru
    On Error Resume Next
    Dim selected_sha As Shape, sha As Shape
    Set selected_sha = ActiveSheet.Shapes(Application.Caller)
    ActiveSheet.Unprotect
    Application.ScreenUpdating = False
    With selected_sha.Glow
        .Color.ObjectThemeColor = msoThemeColorAccent2
        .Transparency = 0.5
        .Radius = 11
    End With
    For Each sha In ActiveSheet.Shapes
        If Not sha Is selected_sha Then sha.Glow.Radius = 0
    Next
    ActiveSheet.Protect
    Application.ScreenUpdating = True
End Sub
 
Игорь ! Спасибо вам огромное. Разобрался .
Страницы: 1
Наверх