SOLVED

Selecting a shape and changing its attributes

Copper Contributor

Hi!

 

I'm looking for a way to, when selecting a text box/shape, be able to just apply a macro to format it, to a specific background color, with no border, and some basic shadow.

I can't seem to find a way to do that to a random text box, meaning, I would not have the object name to refer it in the macro. 

So, I need the macro identify the object that I'm selecting and then apply what I want to it.

 

Thanks in advance.

8 Replies

@cindix 

Why not simply create a text box formatted the way you want and add it to your Text Boxes Gallery?

That would only work for inserting a new text box. I want to be able to format an existing one.
pourquois pas crer de nouveaux caractères
That is the kind of work I'm trying to avoid, by using the macros.
Try selecting a text box, recording a macro, and using that macro.
That was the first thing I tried. The resultant code selects the shape by its name, so it does not work in any other box, unless it has the same name.
best response confirmed by cindix (Copper Contributor)
Solution

@cindix 

 

Here is an example:

  .

 

 

Sub ShapeSelectedFormat()
'
' Charles Kenyon 4 November 2023
'
' See https://learn.microsoft.com/en-us/office/vba/api/word.shape
'
    With Selection.ShapeRange(1)
        .Fill.ForeColor.ObjectThemeColor = wdThemeColorAccent2
        .AutoShapeType = msoShapeOval
    End With
End Sub

 

 

 

Here is the support page on the Shape Object.

https://learn.microsoft.com/en-us/office/vba/api/word.shape

 

You can choose the attributes you want to change within the With structure. They are listed in the support article.

 

You could attach your macro to a keyboard shortcut and/or a QAT button. Those should be stored in the same template that holds your macro.

 

Word has two Shape collections, Shapes and InLineShapes. I am not sure this will work with both but you are welcome to try it.

That will do. :)
Thank you.