Forum Discussion
Lock shapes in PowerPoint, Word and Excel
- Nov 03, 2022
There is no such visual feature in Excel, but the capability of preventing users from moving, editing, or even selecting shapes is present in Excel, and mostly (if not entirely) can be invoked from VBA.
Microsoft Excel terminology is poor in this area, so note that "the ability to lock shapes" is not the same as "the ability to prevent changes to shapes". (It's as though "Locked" means a lock has been installed, not whether that lock is engaged or not.)
Martin is correct about the two-step process -- the changing (if necessary) of Locked status to true, and protecting the worksheet. So see the attached workbook, and let us know why use of Locked status and the worksheet's Protect method (and possibly the Unprotect method) does not satisfy your requirement.
What I do not see is the capability in VBA to set (or unset) the "Lock text" property of the shape I tested. But as this is set by default, perhaps that is not an issue for you.
in Excel the lock mechanism always consists of two steps:
1. changing the object property (locked / unlocked)
2. activate the sheet protection (menu "Review | Protect sheets")
Also for objects like shapes, there is a "Locked" property that you can change. Right-click the shape, and select "Size and Properties..."
If you use the macro recorder, you get this code:
So you can change it to msoTrue to set it to "Locked"
By default, every object has this property set to "Locked", but it only gets activated if you switch on the sheet protection:
In VBA:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
I'm not sure if this answers your question.
Hi Martin_Weiss, thank you very much for your time.
I apologize, I realize that the image was not uploaded and perhaps that is why it was not understood, sorry. I share the image.
I am referring to the ability to lock shapes (as in the image), currently it can only be done in PPT, but I don't know how to do it with VBA, I don't find it in the documentation.
In Excel we can do something similar, but only referring to not move in case I make change in the rows or columns as its size, what I want is that you can't do anything with shapes (as can be done now with the shapes in PPT, as in the image).
Thank you very much friend Martin.