Добрый вечер, форумчане. Помогите решить проблему. На листе находится множество фигур. В таблице сбоку - занесены названия фигур. Напротив некоторых их названий стоит единица.
Как при помощи макроса сделать те фигуры, названия которых помечены единицей в таблице - невыделяемыми ? А те фигуры, напротив названий которых - единицы не стоит - оставить выделяемыми.
Добрый вечер, форумчане. Помогите решить проблему. На листе находится множество фигур. В таблице сбоку - занесены названия фигур. Напротив некоторых их названий стоит единица.
Как при помощи макроса сделать те фигуры, названия которых помечены единицей в таблице - невыделяемыми ? А те фигуры, напротив названий которых - единицы не стоит - оставить выделяемыми.mv6677
Щелчок на одной фигуре - параметры фигуры - свойства. Убрать галочку "Защищаемый объект". Затем щелчок на ярлычке листа - пункт "защитить лист", снять галочку с пункта - изменение объектов.
В итоге - некоторые фигуры (с которых убрана галочка "Защищаемого объекта") - можно выделить, а те фигуры где такая галочка стоит - выделить становится нельзя. Это и есть - "невыделяемые фигуры".
Щелчок на одной фигуре - параметры фигуры - свойства. Убрать галочку "Защищаемый объект". Затем щелчок на ярлычке листа - пункт "защитить лист", снять галочку с пункта - изменение объектов.
В итоге - некоторые фигуры (с которых убрана галочка "Защищаемого объекта") - можно выделить, а те фигуры где такая галочка стоит - выделить становится нельзя. Это и есть - "невыделяемые фигуры".
(предполагается, что защиту с ячеек я уже снял)mv6677
Сообщение отредактировал mv6677 - Вторник, 22.08.2017, 23:07
Sub checkLockedObj() 'ActiveSheet.Unprotect Dim cell As Range, shp As Shape Set cell = ActiveSheet.[B6] ' первая ячейка таблицы с названием фигуры While Len(cell.Value) > 0 Set shp = ActiveSheet.Shapes(cell.Value) If cell.Offset(, 1) = 1 Then shp.Locked = msoTrue Else shp.Locked = msoFalse End If Set cell = cell.Offset(1) Wend 'ActiveSheet.Protect End Sub
[/vba]Если в "боевом" режиме при выполнении макроса защита листа включена, и надо, чтобы она осталась включенной - раскомментируйте строчки с Protect/Unprotect
Проверяйте... [vba]
Код
Sub checkLockedObj() 'ActiveSheet.Unprotect Dim cell As Range, shp As Shape Set cell = ActiveSheet.[B6] ' первая ячейка таблицы с названием фигуры While Len(cell.Value) > 0 Set shp = ActiveSheet.Shapes(cell.Value) If cell.Offset(, 1) = 1 Then shp.Locked = msoTrue Else shp.Locked = msoFalse End If Set cell = cell.Offset(1) Wend 'ActiveSheet.Protect End Sub
[/vba]Если в "боевом" режиме при выполнении макроса защита листа включена, и надо, чтобы она осталась включенной - раскомментируйте строчки с Protect/UnprotectAndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Среда, 23.08.2017, 01:48