Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

MS Word VBA CheckBoxes

Status
Not open for further replies.

Redmondkw357

Technical User
Feb 11, 2019
7
US
thread711-1792711

Redmondkw357 (TechnicalUser)
(OP)
12 Feb 19 00:08
I have a checkbox that I use the following code to change the properties but I would like it to apply to all checkboxes or any new checkboxes added to the document without having to copy it to each individual check box click event.

Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
CheckBox1.Caption = "Complete"
CheckBox1.BackColor = 65535
CheckBox1.ForeColor = 25600
CheckBox1.SpecialEffect = fmButtonEffectSunken
Else
CheckBox1.Caption = "Status"
CheckBox1.BackColor = 16777215
CheckBox1.ForeColor = 255
CheckBox1.SpecialEffect = fmButtonEffectSunken
End If
End Sub

Can someone tell me how to make this apply to any checkbox and all new checkbox at one time?
 
You may try this - not tested because I don't know if you have your check boxes on the Form, in the Word document, on the Excel sheet, ...

Code:
Private Sub CheckBox1_Click()

    Call DealWithIt(CheckBox1)

End Sub

Private Sub DealWithIt(ByRef chk As CheckBox)

With chk
    If .Value = True Then
        .Caption = "Complete"
        .BackColor = 65535
        .ForeColor = 25600
        .SpecialEffect = fmButtonEffectSunken
    Else
        .Caption = "Status"
        .BackColor = 16777215
        .ForeColor = 255
        .SpecialEffect = fmButtonEffectSunken
    End If
End With

End Sub


---- Andy

There is a great need for a sarcasm font.
 
I apologize, I should have noted which MS application this was for. I am using the check boxes in MS Word 2016.
 
Will this apply to all check boxes on the document or do I have to add it to each check box?
 
I am using the check boxes in MS Word 2016" on the UserForm? Or on the Word document itself?

Oh, wait, you did state "all check boxes on the document ", so it is not on the UserForm.

"Will this apply to all check boxes on the document or do I have to add it to each check box? " That depends on what action you want to make and what you want to happen.

If you want to click on one check box and want to change the appearance of this particular check box, then add the Call to all your check boxes.

Otherwise you would need to loop thru all check boxes, but that is not making much sense.

It would help if you would show a picture of what you have, and state clearly what action you want to make and what you would like to happen.


---- Andy

There is a great need for a sarcasm font.
 
This worked on my word file.
to apply to all checkboxes or any new checkboxes added
To get the number of checkboxes

[tt]activedocument.ContentControls.Count[/tt]


If new boxes are added or removed, the count will adjust accordingly. Then you could use that in your loop.
Code:
For i = 1 to activedocument.ContentControls.Count
      activedocument.contentcontrols(i).____________

Next

Put the action you want in the underlined part
 
Thank you, I will try this and let you know the results hopefully after this next meeting.
 
If you want something to apply to all checkboxes on a document, you should use content control checkboxes. Your code implies an ActiveX checkbox. With content control checkboxes, a single ContentControlOnExit macro can respond the same way for all of them. See, for example:
Do note, though, that content control checkboxes don't have the same properties as ActiveX checkboxes.

Cheers
Paul Edstein
[MS MVP - Word]
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top