Forum Discussion
ChrisUoN
Jun 29, 2023Copper Contributor
Automatically update text depending on contents of a content control in Word
Hi, is it possible to automatically update part of a Word document using content controls and perhaps field codes or something similar? I'll outline an example here: I have a content control that ...
Jun 29, 2023
ChrisUoN Firstly, to control what appears in the Content Control, I would recommend that you use a Combo Box Content Control that contains the Phase 1, Phase 2 and Phase 3 as the only items that can be selected. Then set the Title of the Content Control to "Phase", then paste the following code into the ThisDocument Object in the Visual Basic Editor:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
If ContentControl.Title = "Phase" Then
Select Case ContentControl.Range.Text
Case "Phase 1"
ThisDocument.Variables("varPhase").Value = "One"
Case "Phase 2"
ThisDocument.Variables("varPhase").Value = "Two"
Case "Phase 3"
ThisDocument.Variables("varPhase").Value = "Three"
Case Else
ThisDocument.Variables("varPhase").Value = "Nothing Selected"
End Select
End If
ThisDocument.Range.Fields.Update
End Sub
Dpaulhesk
Aug 30, 2024Copper Contributor
How does one show the results of this in the Word document? I can't tell from here how to show the output. Thanks.
- Charles_KenyonAug 31, 2024Bronze Contributor
The results of a choice in a ComboBox or Drop-Down Content Control in Word are shown in the control in the document.
To have the results show up elsewhere you need a mapped control or another method.
- DpaulheskAug 31, 2024Copper ContributorI'm sorry. I wasn't clear. The OP said, "I want a piece of text elsewhere in the document to automatically update with some corresponding text." If I use the VBE that you wrote out, above. How can I get the Value ("One", "Two", etc.) to appear elsewhere in the document?
- Charles_KenyonAug 31, 2024Bronze ContributorIt was not my code, but Doug's.
Read the linked pages in my last response, please. They show how to get a value in one place reflected elsewhere.
If you do not need a dropdown with choices but simply what is typed, you can use the mapped content controls already built into Word: The "Document Property" Quick Part Content Controls.
https://addbalance.com/word/MappedControls.htm#PageStart