form - field shaded when blank, unshaded when filled in

  • Thread starter Aliza Berger-Cooper
  • Start date
A

Aliza Berger-Cooper

I want to create a fill-in form in Word 2003, with text fields. I would like to initially shade the fill-in fields, and after the person fills one in, it would automatically go to unshaded. The idea is that the ones they still need to fill in would stand out as shaded (or, better yet, colored).

I would also like the same advice regarding a table cell in an ordinary document (NOT in a fill-in form)?



I assume this requires macros. I saw a somewhat similar thread on checkboxes here:
http://www.eggheadcafe.com/software/aspnet/32861614/change-appearance-of-chec.aspx

But I am not experienced enough with macros to be sure how to adapt this.

Thanks very much in advance!

Aliza in Jerusalem


Submitted via EggHeadCafe - Software Developer Portal of Choice
Create the Signature of XML file
http://www.eggheadcafe.com/tutorial...a-a44eb4b902cb/create-the-signature-of-x.aspx
 
J

Jay Freedman

I want to create a fill-in form in Word 2003, with text fields. I would like to initially shade the fill-in fields, and after the person fills one in, it would automatically go to unshaded. The idea is that the ones they still need to fill in would stand out as shaded (or, better yet, colored).

I would also like the same advice regarding a table cell in an ordinary document (NOT in a fill-in form)?



I assume this requires macros. I saw a somewhat similar thread on checkboxes here:
http://www.eggheadcafe.com/software/aspnet/32861614/change-appearance-of-chec.aspx

But I am not experienced enough with macros to be sure how to adapt this.

Thanks very much in advance!

Aliza in Jerusalem


Submitted via EggHeadCafe - Software Developer Portal of Choice
Create the Signature of XML file
http://www.eggheadcafe.com/tutorial...a-a44eb4b902cb/create-the-signature-of-x.aspx

For text form fields, you can put this macro in the form template
(change the colors as desired):

Sub FormExit()
Dim fld As FormField
ActiveDocument.Unprotect
If Selection.Bookmarks.Count > 0 Then
Set fld = ActiveDocument.FormFields( _
Selection.Bookmarks( _
Selection.Bookmarks.Count).Name)
End If
If Trim(fld.Result) = "" Then
fld.Range.Shading _
.BackgroundPatternColor = wdColorYellow
Else
fld.Range.Shading _
.BackgroundPatternColor = wdColorWhite
End If
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _
NoReset:=True
End Sub

Assign this macro as the exit macro of each text form field. To have
each new document start with the fields colored, also put in this
macro:

Sub AutoNew()
Dim fld As FormField
With ActiveDocument
.Unprotect
For Each fld In .FormFields
fld.Range.Shading.BackgroundPatternColor = _
wdColorYellow
Next
.Protect Type:=wdAllowOnlyFormFields
End With
End Sub

This sort of thing works for form fields because you can assign an
exit macro that runs automatically when you exit the field. There is
no such thing for a table cell that doesn't contain a form field.
Although it would be possible to use an application event handler for
the WindowSelectionChange event to change the background color of a
table cell, its behavior isn't very nice. See
http://www.eggheadcafe.com/software/aspnet/31328183/change-background-to-red.aspx
for a discussion.
 
A

Aliza Berger-Cooper

Jay,

Thanks so much for your helpful answer.

I have a followup question.

I want the user to be able to print the form (partially completed) with the blank fields shaded and the filled fields unshaded (accomplished as per your instructions).
The Microsoft site says this:

<<To add shading to a printed form, select the form field you want to emphasize, and then click Borders and Shading (Format menu). On the Shading tab, select the shading options you want.>>

Will this work in conjunction with your advice?

TIA again.

Aliza in Jerusalem



Jay Freedman wrote:

For text form fields, you can put this macro in the form template(change the
26-Jan-10

For text form fields, you can put this macro in the form templat
(change the colors as desired)

Sub FormExit(
Dim fld As FormFiel
ActiveDocument.Unprotec
If Selection.Bookmarks.Count > 0 The
Set fld = ActiveDocument.FormFields(
Selection.Bookmarks(
Selection.Bookmarks.Count).Name
End I
If Trim(fld.Result) = "" The
fld.Range.Shading
..BackgroundPatternColor = wdColorYello
Els
fld.Range.Shading
..BackgroundPatternColor = wdColorWhit
End I
ActiveDocument.Protect Type:=wdAllowOnlyFormFields,
NoReset:=Tru
End Su

Assign this macro as the exit macro of each text form field. To hav
each new document start with the fields colored, also put in thi
macro

Sub AutoNew(
Dim fld As FormFiel
With ActiveDocumen
..Unprotec
For Each fld In .FormField
fld.Range.Shading.BackgroundPatternColor =
wdColorYello
Nex
..Protect Type:=wdAllowOnlyFormField
End Wit
End Su

This sort of thing works for form fields because you can assign a
exit macro that runs automatically when you exit the field. There i
no such thing for a table cell that does not contain a form field
Although it would be possible to use an application event handler fo
the WindowSelectionChange event to change the background color of
table cell, its behavior is not very nice. Se
http://www.eggheadcafe.com/software/aspnet/31328183/change-background-to-red.asp
for a discussion

-
Regards
Jay Freedma
Microsoft Word MVP FAQ: http://word.mvps.or
Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit.

Previous Posts In This Thread:


Submitted via EggHeadCafe - Software Developer Portal of Choice
Book Review: Silverlight 3 Programmer's Reference [Wrox]
http://www.eggheadcafe.com/tutorial...c74-f84ab694588b/book-review-silverlight.aspx
 
A

Aliza Berger-Cooper

I see that the Microsoft advice I quoted might not have come through. It was:

To add shading to a printed form, select the form field you want to emphasize, and then click Borders and Shading (Format menu). On the Shading tab, select the shading options you want.

To top this off, is it possible to pre-fill a form field with text that will disappear when the person types in the field? E.g the text field will be pre-filled with "Name" until the person types in their name.

And how will this work in conjunction with the shading options?

-Aliza in Jerusalem



Aliza Berger-Cooper wrote:

All Groups Ask New Question Developer Outlook AddIns Excel Excel Charting Excel Crashes GPFs Excel Miscellaneous Excel New Users Excel Programming Excel Setup Excel Worksheet Groove MAC Office MAC Off
27-Jan-10

Jay,

Thanks so much for your helpful answer.

I have a followup question.

I want the user to be able to print the form (partially completed) with the blank fields shaded and the filled fields unshaded (accomplished as per your instructions).
The Microsoft site says this:

<<To add shading to a printed form, select the form field you want to emphasize, and then click Borders and Shading (Format menu). On the Shading tab, select the shading options you want.>>

Will this work in conjunction with your advice?

TIA again.

Aliza in Jerusalem

Previous Posts In This Thread:


Submitted via EggHeadCafe - Software Developer Portal of Choice
The FAST TRACK to ASP.NET
http://www.eggheadcafe.com/tutorial...48-dbfb16fcdda1/the-fast-track-to-aspnet.aspx
 
A

Aliza Berger-Cooper

I see that when I copy and paste from Microsoft, it doesn't come through for some reason. I will type it out:

To add shading to a printed form, select the form field you want to emphasize and then click Borders and Shading (Format Menu). On the Shading tab, select the options you want.

-Aliza in Jerusalem



Aliza Berger-Cooper wrote:

All Groups Ask New Question Developer Outlook AddIns Excel Excel Charting Excel Crashes GPFs Excel Miscellaneous Excel New Users Excel Programming Excel Setup Excel Worksheet Groove MAC Office MAC Off
27-Jan-10

I see that the Microsoft advice I quoted might not have come through. It was:

To add shading to a printed form, select the form field you want to emphasize, and then click Borders and Shading (Format menu). On the Shading tab, select the shading options you want.

To top this off, is it possible to pre-fill a form field with text that will disappear when the person types in the field? E.g the text field will be pre-filled with "Name" until the person types in their name.

And how will this work in conjunction with the shading options?

-Aliza in Jerusalem

Previous Posts In This Thread:


Submitted via EggHeadCafe - Software Developer Portal of Choice
SQL Server - Detach / Attach / Full Text Catalog
http://www.eggheadcafe.com/tutorial...676-881f3eefed9b/sql-server--detach--att.aspx
 
J

Jay Freedman

The shading applied by the macro is exactly the same as the shading you
could apply from the Borders and Shading dialog. It will print. There is no
need to do anything else.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.
 
J

Jay Freedman

The material you quoted did appear in your previous message, although it
might not have shown on the web page you were using. As I answered there,
the macro applies the same shading as the Borders and Shading dialog, and
there is no need to use the dialog.

To answer your second question, while you're creating the form and the
document is unprotected, double-click the form field or click the Properties
button on the Forms toolbar to open the field's Properties dialog. At the
top right of the dialog, enter your text in the Default Text box.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.
 

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