![]() |
|
#1
|
||||
|
||||
![]()
The initial post included this line
If Me.CheckBox1.Value This made me think that you had the checkboxes on a VBA Userform since 'Me' is a reference to a VBA userform. If you ACTUALLY have Content Control Checkboxes in the body of the document then the coding can be simpler. Put this code into the ThisDocument module. You won't need any other code if you have set up your Tag/Title combinations with the Content Controls. Code:
Private Sub Document_ContentControlOnExit(ByVal aCC As ContentControl, Cancel As Boolean) Dim aCC2 As ContentControl, sTag As String If aCC.Type = wdContentControlCheckBox Then sTag = aCC.Tag Set aCC2 = ActiveDocument.SelectContentControlsByTitle(sTag)(1) With aCC2 If aCC.Checked Then aCC2.Range.Text = "Title" & vbTab & "First line" aCC2.Range.Words(1).Bold = True Else aCC2.SetPlaceholderText Text:="Blank" aCC2.Range.Text = "" End If End With End If End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#2
|
|||
|
|||
![]()
Thanks very much everyone.
I don't think I got to the level where I can use tags at this stage, but the last code works very well with Tag Title combinations. Can you help me with the last bit of the code please, what do I need to change in the code if I want to add additional checkboxes and text? Additional checkbox would have additional corresponding text. Appreciate your help, this project is almost finished. |
#3
|
|||
|
|||
![]()
Think I have it sorted. Works so far. Thanks for all your help everyone.
Private Sub Document_ContentControlOnexit(ByVal aCC As ContentControl, Cancel As Boolean) Dim aCC2 As ContentControl, sTag As String Select Case aCC.Title Case "C1" If aCC.Type = wdContentControlCheckBox Then sTag = aCC.Tag Set aCC2 = ActiveDocument.SelectContentControlsByTitle(sTag)( 1) With aCC2 If aCC.Checked Then aCC2.Range.Text = "Title" & Chr(10) & "First line" aCC2.Range.Words(1).Bold = True Else aCC2.SetPlaceholderText Text:="Blank" aCC2.Range.Text = "" End If End With End If End Select Select Case aCC.Title Case "C2" If aCC.Type = wdContentControlCheckBox Then sTag = aCC.Tag Set aCC2 = ActiveDocument.SelectContentControlsByTitle(sTag)( 1) With aCC2 If aCC.Checked Then aCC2.Range.Text = "Title1" & Chr(10) & "First line1" aCC2.Range.Words(1).Bold = True Else aCC2.SetPlaceholderText Text:="Blank" aCC2.Range.Text = "" End If End With End If End Select End Sub |
#4
|
|||
|
|||
![]()
The project is almost complete now, thank you for all your suggestions, using content control definitely streamlined the process.
I have spent much time on research but hit a brick wall again. I am sure there were much efficient ways around it but the word document works well and checkboxes populate text in rich text areas so I would be reluctant to make any significant changes to the code, however the text needs formatting. Unfortunately, one paragraph is over two pages long and should have different levels of lists formatting (Bullet points (chr(149), sub a) level and sub-sub i) level. Is there a way to select a range within the text and apply the list format? I am able to apply one list format to a whole range but not for parts of range and different levels of lists (as per above). Any help would be greatly appreciated again. Code:
Private Sub Document_ContentControlOnexit(ByVal aCC As ContentControl, Cancel As Boolean) Dim aCC2 As ContentControl, sTag As String Select Case aCC.Title Case "Title1" If aCC.Type = wdContentControlCheckBox Then sTag = aCC.Tag Set aCC2 = ActiveDocument.SelectContentControlsByTitle("Title")(1) With aCC2 If aCC.Checked Then aCC2.Range.Text = "HEADING BOLD" & Chr(10) & Chr(10) & "Text text text text text." & Chr(10) & Chr(10) & "Text text text text text" _ & Chr(10) & Chr(10) & "Bullet point text" _ & Chr(10) & Chr(10) & "a) List text" & Chr(10) & "b) List text" _ & Chr(10) & Chr(10) & "i) List text" & Chr(10) & "ii) List text" aCC2.Range.Words(1).Bold = True aCC2.Range.Words(2).Bold = True aCC2.Range.Font.Name = "Calibri" aCC2.Range.Font.Size = 11 aCC2.Range.ParagraphFormat.Alignment = wdAlignParagraphJustify aCC2.Range.ParagraphFormat.SpaceAfter = 0 Else aCC2.SetPlaceholderText Text:="Blank" aCC2.Range.Text = "" End If End With End If End Select |
![]() |
Tags |
bold header |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
Frogoogue | Word VBA | 4 | 05-30-2022 09:15 AM |
![]() |
Burt | Word | 6 | 04-06-2019 09:09 AM |
![]() |
footer-assistance | Word | 1 | 06-29-2015 03:49 AM |
![]() |
Pluviophile | Word | 7 | 10-22-2013 10:29 AM |
![]() |
Rattykins | Word VBA | 4 | 06-27-2012 10:02 PM |