How do I list my choices in an Active X drop-down on a form?

T

teacher

I am trying to create a form in 2007 using an Active X drop-down list. It
will not allow me to edit the contents to enter the list of choices. Any
ideas????
 
J

Jay Freedman

I am trying to create a form in 2007 using an Active X drop-down list. It
will not allow me to edit the contents to enter the list of choices. Any
ideas????

The first and best idea is not to use any ActiveX controls in Word. Read the
"Appropriateness for Task" section in
<http://msdn2.microsoft.com/en-us/library/aa140269(office.10).aspx> for a
summary of their drawbacks.

If the form will be used only in Word 2007 and not by users of earlier versions,
use a dropdown list Content Control instead. You'll find it on the Developer tab
of the ribbon, and it behaves much like the old dropdown form field for
protected forms, except that it doesn't require protecting the document.

If you still want to use the ActiveX combo box control, you'll have to write
macro code to load the list into the box. The MSDN article shows code in Listing
3 to get the entries from an Access database, but for a simple unchanging list
all you need is something like this in the template's ThisDocument module:

Private Sub PopulateList(cbo As MSForms.ComboBox)
With cbo
.AddItem "first item"
.AddItem "second item"
.AddItem "third item"
.ListIndex = 0
End With
End Sub

Private Sub Document_New()
PopulateList ComboBox1
End Sub

Private Sub Document_Open()
PopulateList ComboBox1
End Sub

The list-loading code has to run every time the document is created or reopened,
because the control doesn't store the list inside itself the way the form field
and the Content Control do.

Further, if you want the box's selection from a previous session to still be
selected when you reopen the document, you have to program macros explicitly to
store the selected value (possibly in a document variable) when the document is
saved and to re-select that value after the list is reloaded.
 

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