Solved

How can I dynamically populate a combo box list based on a previous list box choice using Word 2007 Content Controls

Posted on 2010-11-22
2
595 Views
Last Modified: 2012-05-10
I'm designing a tabular form in Word 2007 to be used across my firm's IT deptartment for Change Management. I'd like to use a content control list box to display a list of systems (i.e. 'Front End', 'Back End', 'Database', 'Infrastructure', 'Batch', etc.). Selecting a member of this list would cause a list of names to be available in a combo box of Resources. The user would then select one member of this resource list. A different list of resources would be available for selection based on the selection made in the Systems list box. For now, at least, resource lists would be maintained in document source code.

I've developed several Excel applications using VBA, but have never ventured into Word. I'm trying to determine if I can use these nice-looking content controls to accomplish my task, or should just stick with VBA controls.

Have looked around extensively for materials that discuss how to code for these content controls, without any luck. In addition to advice on my question, would also greatly appreciate any feedback on resource material on coding for these content controls - books, tutorials, etc.
0
Comment
Question by:DBuzzell
2 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 250 total points
ID: 34187920
You need some code like this. It goes in the ThisDocument module of the document.

Note that it uses the Tag property to distinguish between controls, sot that needs to be set for both.
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)

Dim cc2 As ContentControl

    If ContentControl.Tag = "First" Then

        For Each cc2 In ActiveDocument.ContentControls

            If cc2.Tag = "Second" Then

                cc2.DropdownListEntries.Clear

                Select Case ContentControl.Range.Text

                    Case "Red"

                        cc2.DropdownListEntries.Add "Scarlet"

                        cc2.DropdownListEntries.Add "Vermillion"

                    Case "Blue"

                        cc2.DropdownListEntries.Add "Navy"

                        cc2.DropdownListEntries.Add "Azure"

                End Select

            End If

        Next cc2

   End If

End Sub

Open in new window

0
 

Author Closing Comment

by:DBuzzell
ID: 34273775
The solution provided the foundation for me to code a complete solution
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Nice table. Huge mess. Maybe this was something you created way back before you figured out tabs or a document you received from someone else. Either way, using the spacebar to separate the columns resulted in a mess. Trying to convert text to t…
Introduction This tutorial provides instructions on how to properly format your Word document using the inbuilt tools provided. The benefits of using these tools means your documents are more accessible and easily portable to other applications an…
In this video, we show how to convert an image-only PDF file into a PDF Searchable Image file, that is, a file with both the image (typically from scanning) and text, which is created in an automated fashion with Optical Character Recognition (OCR) …
This video shows where to find the word count, how to display it, and what it breaks down to in Microsoft Word.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now