Changing the test of checkboxes (shapes) programmatically?

N

newsgroups

Dear all,

I've found a way to change the text *next to* a single checkbox on a worksheet with this code:

Sub change()
ActiveSheet.Shapes.Range(Array("Check Box 12")).Select
Selection.Characters.Text = "any_new_text"
End Sub

But If there are many textboxes in a file, on different worksheets, there must be a way to address them all in one go. I also managed to read the 'name' and 'alternative text' of shapes with this code:

Dim c As Shape
For Each c In Worksheets(1).Shapes
Debug.Print c.Name & " " & c.AlternativeText
Next c
End Sub

I guess there must be a way to change the text (which appears not to be the properties 'Name' or 'Alternativetext') of all shapes, but can't get my head around it. Anyone who can?

Regards,
Dr
 
S

Sheriff

could this help?
If c.Type = msoTextBox Then
Debug.Print c.Name & " " & c.AlternativeText
End If

rgds

... and I'm working in Excel 2010.

Dr


--- news://freenews.netfront.net/ - complaints: (e-mail address removed) ---
 
N

newsgroups

I'm afraid that doesn't work, because the texts *next to* the CheckBoxes (= shapes) are not msoTextBoxes, nor .Name, nor .AlternativeText. The texts I want to change are 'elements' of a Shapes.Range(Array("xxx")) object and can be selected with the .Select method, as can be seen in this working code snippet:

Sub change()
ActiveSheet.Shapes.Range(Array("Check Box 12")).Select
Selection.Characters.Text = "any_new_text"
End Sub

My purpose was to change all these 'elements' in one pass, but I don't know how to do that with VBA. I was thinking of a For... Next loop and would need som help to write that routine.

Kind regards
Dr
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top