Is there a way to "lock" some cells in a notebook so they can't be edited? It's usually input cell that's documenting some functionality. I'd like other readers of the notebook to be able to execute them but not changing them.
2 Answers
If you want to make some cell non editable, mark these cells and use the menu entry
Cell -> CellProperties
and remove the mark before Editable
.
If your cell is an Input-Cell, it can be evaluated but not edited.
-
2$\begingroup$ For extra protection, before making the cell not
Editable
, you may wish to make it notDeletable
. To do so, select the cell, open the Option Inspector, and uncheckDeletable
in theCell Options > General Properties
section. (And while you're there you can then also uncheckEditable
.) $\endgroup$– murrayNov 1, 2012 at 20:30 -
$\begingroup$ @murray, nice tip. I wasn't aware of the
Deletable
option. $\endgroup$ Nov 2, 2012 at 9:38 -
$\begingroup$ And as I learned when I first tried it, you must make a cell non-
Deletable
before you make it non-Editable
! $\endgroup$– murrayNov 2, 2012 at 13:45
Suppose you have an open notebook, say "Untitled-1". The following code, executed in the same notebook or another, will select all the Input cells and set them to un-Editable and un-Evaluatable.
nb = First[Notebooks["Untitled-1"]];
inputCells = NotebookFind[nb,
"Input", All, CellStyle];
SetOptions[inputCells,
Evaluatable -> False,
Editable -> False]
Editable
already? $\endgroup$