Strategy to protect shapes

M

Michael Glenn

Hello All,

What is the best approach for protecting drawings in Visio 2003?
I have a drawing that I want people to be able to read (by default) but
which would require additional steps to modify (i.e. I don't want them to
unintentionally move or delete shapes).

Thanks for your input!

Michael
 
A

AlEdlund

distribute as pdf (requires third party product), distribute as svg (free
download from adobe), distribute as html, etc..
al
 
M

Michael Glenn

Hi Al,

I forgot to mention "within Visio"...just ran across the "Track Markup"
feature that is new to 2003 which might be more what I am looking for.
Otherwise, I was thinking of writing some VB code to toggle shape protection
on and off...that way someone who wanted to modify something would have to
first toggle protection off...

Thanks,

Michael
 
G

G-Money

The GUARD shapesheet function is nice because it is harder for a user
to figure out than protection. GUARD requires that one open and
navigate the shapesheet. A typical visio user does not know about the
shapesheet. The protection property is available on the right-click
menu, easily accessible to the user.

Hope that helps.
Garrett
 
M

Michael Glenn

Thanks for the input...what I ended up doing was creating a two little forms
with progress bars: one to lock and one to unlock the shapes (see code below
to lock; to unlock set values to "0"). I set up a toolbar button to activate
the unlock form so the user has to click on it voluntarily. I lock
everything when the document is saved. I might add some code to the unlock
function in order to log who made the changes...

Private Sub UserForm_Activate()
Dim shapeIndex As Integer
Dim theShape As Shape
Dim numPages As Integer
Dim numShapes As Integer
Dim pageIndex As Integer
Dim TotalShapes As Integer
Dim TotalShapeCount As Integer

TotalShapes = 0
numPages = ActiveDocument.Pages.Count
For pageIndex = 1 To numPages
TotalShapes = TotalShapes +
ActiveDocument.Pages(pageIndex).Shapes.Count
Next
TotalShapeCount = 0
ProtectingShapes.ProgressBar1.Min = 0
ProtectingShapes.ProgressBar1.Max = TotalShapes
ProtectingShapes.ProgressBar1.Value = TotalShapeCount

For pageIndex = 1 To numPages
numShapes = ActiveDocument.Pages(pageIndex).Shapes.Count
For shapeIndex = 1 To numShapes
ProtectingShapes.ProgressBar1.Value = TotalShapeCount
TotalShapeCount = TotalShapeCount + 1

Set theShape = ActiveDocument.Pages(pageIndex).Shapes(shapeIndex)
theShape.CellsSRC(visSectionObject, visRowLock,
visLockWidth).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockHeight).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockMoveX).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockMoveY).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockAspect).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockDelete).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockBegin).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockEnd).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockRotate).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockTextEdit).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockFormat).FormulaU = "1"
theShape.CellsSRC(visSectionObject, visRowLock,
visLockSelect).FormulaU = "1"
Next shapeIndex
Next pageIndex
Unload ProtectingShapes
End Sub
 
A

Andy

Have you thought of just locking the layer containing the shapes, then
you only need to have your form lock or unlock the layer.
 
P

Paul Herber

Hello All,

What is the best approach for protecting drawings in Visio 2003?
I have a drawing that I want people to be able to read (by default) but
which would require additional steps to modify (i.e. I don't want them to
unintentionally move or delete shapes).

Just select all the shapes and menu Format -> Protection -> All
It's now difficult enoght to select the shapes let alone change them.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top