Excel VBA: с легкостью защитите свои фигуры

Если вы опытный пользователь Excel, вы, вероятно, много работали с фигурами в своих таблицах. Фигуры можно использовать для различных целей, например в качестве кнопок, изображений или визуализации данных. Однако крайне важно защитить ваши фигуры, чтобы предотвратить случайное изменение или удаление. В этой статье блога мы рассмотрим несколько методов защиты фигур в Excel с помощью кода VBA. Итак, давайте углубимся и узнаем, как легко защитить ваши формы!

Метод 1. Защита всех фигур на листе:
Чтобы защитить все фигуры на листе, вы можете использовать следующий код VBA:

Sub ProtectAllShapes()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        shp.Locked = True
    Next shp
    ActiveSheet.Protect
End Sub

Этот код проходит через каждую фигуру на активном листе и устанавливает для свойства Lockedзначение True. Наконец, он защищает лист, предотвращая любые изменения фигур.

Метод 2. Защита определенных фигур.
Если вы хотите защитить только определенные фигуры, вы можете изменить код следующим образом:

Sub ProtectSpecificShapes()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        If shp.Name = "Button1" Or shp.Name = "Image1" Then
            shp.Locked = True
        End If
    Next shp
    ActiveSheet.Protect
End Sub

В этом примере мы защищаем две конкретные фигуры с именами «Кнопка1» и «Изображение1». Вы можете настроить код, указав имена фигур, которые хотите защитить.

Метод 3. Разблокировка защищенных фигур.
Чтобы разблокировать ранее защищенные фигуры, используйте следующий код:

Sub UnlockShapes()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        shp.Locked = False
    Next shp
    ActiveSheet.Unprotect
End Sub

Этот код разблокирует все фигуры на активном листе, устанавливая для свойства Lockedзначение Falseи снимая защиту с рабочего листа.

Метод 4. Защита фигур на нескольких листах:
Если у вас есть фигуры, разбросанные по нескольким листам, и вы хотите защитить их все, вы можете использовать этот код:

Sub ProtectShapesOnAllSheets()
    Dim ws As Worksheet
    Dim shp As Shape

    For Each ws In ThisWorkbook.Worksheets
        ws.Protect
        For Each shp In ws.Shapes
            shp.Locked = True
        Next shp
    Next ws
End Sub

Этот код защищает все фигуры на каждом листе книги, проходя по каждому листу и устанавливая для свойства Lockedзначение True.

Защита фигур в Excel с помощью кода VBA — ценный навык, обеспечивающий целостность ваших электронных таблиц. Мы исследовали различные методы, в том числе защиту всех фигур, защиту определенных фигур, разблокировку защищенных фигур и защиту фигур на нескольких листах. Применяя эти методы, вы можете уверенно защитить свои фигуры и предотвратить нежелательные изменения. Помните, что защита фигур – это важный аспект обеспечения точности данных и безопасности электронных таблиц в Excel.