Word VBA Self-Reference

Hi,

I have a document with a number of Control Checkboxes.
Im trying to get a checkbox to refer to itself when clicked.
Say I want to obtain the name or the value of the checkbox whose status I just changed...

For example something like

Private Sub CheckBoxB_Change()
    MsgBox <THIS CHECKBOX>.Name
    MsgBox <THIS CHECKBOX>.Value
End Sub


I'm using Ms Word 2003...
LVL 2
StroboAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
StroboConnect With a Mentor Author Commented:
Yes, thats how Im currently doing it... but, to be honest, I have about a million checkboxes and was hoping there would be an easier way then writing this out for each one.

Maybe I should just try switching to UserForm... although that gives me other issues.

Anyway... thanks..
0
 
Wayne Taylor (webtubbs)AstronautCommented:
You can access the current control using Me.ActiveControl.....

    Private Sub CheckBoxB_Change()
        MsgBox Me.ActiveControl.Name
        MsgBox Me.ActiveControl.Value
    End Sub

Wayne
0
 
StroboAuthor Commented:
Hi Wayne...

I tried that already. I get an error message "Method or data member not found".

I think that would work in Excel, but not in Word. Yeah, I keep running into simple ways to do things in excel and can only wonder why they dont work in Word. :-(

Any other ideas?
0
 
Wayne Taylor (webtubbs)Connect With a Mentor AstronautCommented:
Sorry, I thought you were using a UserForm.

On the document there doesn't appear to be a way to get the active control. But why do you need it? If "CheckBoxB_Change" is called, obviously the controls name is "CheckBoxB". If you are after a method by which you can copy the same routine to numerous controls, consider using a separate routine....
Private Sub CheckBox1_Change()
     CheckBox_Change CheckBox1
End Sub
 
Private Sub CheckBox2_Change()
     CheckBox_Change CheckBox2
End Sub
 
Sub CheckBox_Change(ByRef cb As Object)
     MsgBox cb.Value
End Sub

Open in new window

0
All Courses

From novice to tech pro — start learning today.