Forum Discussion
Selecting a shape and changing its attributes
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.
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.
- Assigning Keyboard Shortcuts in Microsoft Word 2007-2021 (365)
- Modifying the Quick Access Toolbar (QAT) in Microsoft Word
Word has two Shape collections, Shapes and InLineShapes. I am not sure this will work with both but you are welcome to try it.
- Charles_KenyonBronze Contributor
Why not simply create a text box formatted the way you want and add it to your Text Boxes Gallery?
- cindixCopper ContributorThat would only work for inserting a new text box. I want to be able to format an existing one.
- Charles_KenyonBronze ContributorTry selecting a text box, recording a macro, and using that macro.
- max6661515Copper Contributorpourquois pas crer de nouveaux caractères
- cindixCopper ContributorThat is the kind of work I'm trying to avoid, by using the macros.