View Single Post
  #3   Report Post  
Posted to microsoft.public.word.tables,microsoft.public.word.docmanagement
Suzanne S. Barnhill Suzanne S. Barnhill is offline
external usenet poster
 
Posts: 33,624
Default Lock cell for text entry - allow field update only? Also, floating comment?

One note, Peter, wrt legacy forms. When you check the box for "Calculate on
exit" in the Form Field Options for a text or dropdown form field, a REF
field referring to that field *does* update automatically and immediately.
StyleRef fields also update immediately in any kind of document (and in
places in forms where you can't use REF fields, such as the header and
footer).

--
Suzanne S. Barnhill
Microsoft MVP (Word)
Words into Type
Fairhope, Alabama USA

"Peter Jamieson" wrote in message
...
I am not sure you can do this using the old-style fields. I think there is
/a/ way to achieve most of what you want in Word 2007 using content
controls, but I have not used it for real (so e.g. it may be much easier to
break than I think), and it's not a particularly straightforward way.

By way of example, let's suppose you use Insert-Quick Parts-Document
Property-Comments

to insert a plain text content control that inserts the built-in Comments
document property. (if you use the method suggested in this post, you will
eventually want to use your own Content Control rather than rely on the
built-in properties - for that, I suggest you visit Greg Maxey's page at
http://gregmaxey.mvps.org/Mapped_Content_Control.htm )

Insert another copy of that Comments document property content control.
Then type some text in the control and click outside the control. You
should see the content of the other copy update immediately. This is
different from the behaviour of old-style fields where the user typically
had to do something for e.g. the results of REF fields to be updated. e.g.
they might have to select everything and press F9, or go into print
preview, or print, or save and re-open. But the content control values are
linked to a data store in the .docx and when the dta changes, the control
contents change.

OK, now let's imagine you have the following document structu

some text and other material including a copy of the Comments Content
Control.
a table
some more text and other stuff

In one cell in that table you want a cell whose content the users cannot
update.

First, just try inserting a copy of that Comments content control in that
cell. Then, in the Developer tab, click Design Mode, and you should see
some "tags" appear either side of the control. Now right-click the control
and select Properties. (You may have to make sure you are selecting
exactly the right thing for the Properties option to appear). Set "Title"
to "You can't touch this" and check "Content Control cannot be Deleted"
and "Contents Cannot be edited". These properties only affect this
instance of the control. Click Design Mode again and notice that
a. when you click the control in the table, you see "You can't touch
this". OK, so there's no floating tooltip.
b. you can't alter the content of the control in the table
c. you can't delete the control in the table
d. if you enter text in the other copy of the control and click outside
the control, the content in the table updates.

However, that's not quite enough, because if you click in the next cell,
then left arrow, you can still type text between the content control and
the end-of-cell marker.

To prevent that (this is the part I'm not too keen on), click
Developer-Protect Document-Restrict formatting and editing. In the task
pane, ensure "Allow only this type of editing in the document" is checked,
"No changes (Read only)" is selected. Obviously, that's not much use in a
document that's intended to be edited, but we can specify that every part
of the document except that cell is an exception. So...
a. select all of the document down to the table row above the cell that
contains the content control. Check Everyone.
b. in the row containing the content control, select the cells before that
cell, and check Everyone.
c. in the row containing the content control, select the cells after that
cell, and check Everyone.
d. select the cells in the row before the cell containing the content
control, and check Everyone.
e. select everything after that row and check Everyone.

Click "Yes, Start Enforcing Protection" and add whatever passwords you
want. For test purposes, you can leave this blank.

Notice that
a. the text in the unprotected area acquires a yellow background but
previews OK
b. you can edit most of the document in the usual way
c. although you can still click in the protected cell,
- you see "You can't touch this"
- you can't edit anything
d. if you modify the comment text in the control outside the table, the
copy in the table still updates. This is important, because if you put an
old-style REF field in the cell instead of a content control, modify the
bookmark text that it references, and try to update the REF field, it does
not change in the protected part of the document. So I think you /have/ to
use a content control to do this.

The last piece of this puzzle is how to modify the data that appears in
that cell. If the content control is mapped to a built-in property, you
can modify it any way that you could modify a built-in property before,
e.g.
a. insert a field such as

{ COMMENTS "new comment text" }
or
{ INFO COMMENTS "new comment text" }

and update it. (This approach only works for some of the built-in
properties - title, author, comments, keywords and subject I think)
b. use VBA to modify the value of the built-in Comments property, e.g.

Sub SetCommentsText()
ActiveDocument.BuiltInDocumentProperties(wdPropert yComments) = "even newer
text"
End Sub

or

Sub SetCommentsText()
ActiveDocument.BuiltInDocumentProperties("Comments ") = "even newer text"
End Sub

If you use Greg Maxey's add-in or another approach to create your own
content control, you will probably need to update the value of the data in
the document's XML daa store to achieve the same thing. I think Greg's
pages provide enough info. to work out how to do that but post back if you
can't work it out.

--
Peter Jamieson
http://tips.pjmsn.me.uk

"Ed from AZ" wrote in message
...
In Word 2007, I would like to lock a table cell against users entering
text. I have a field code there which references text from elsewhere
in the document. I want to prevent the users from "helping" me by
entering text and overwriting the field code. But however it's
locked, I need to allow the field to update.

Also, can I set up a "floating comment" in that table cell, kind of
like an Excel comment, to let the user know not to try to enter text?

Thanks.
Ed