I need to set the Transparency of Text in a shape via VBA, in fact I need to set the transparency for the whole shape but it's the text I'm stuck with.
I just can't seem to navigate the object model to find the Transparency Property
Function SetTransparency(Value As Single)
On Error GoTo AbortNameShape
If ActiveWindow.Selection.ShapeRange.Count = 0 Then
MsgBox "No Shapes Selected"
Exit Function
End If
With ActiveWindow.Selection.ShapeRange
.Fill.Transparency = Value
.Line.Transparency = Value
.TextFrame.TextRange. **HELP** .Transparency = Value
End With
AbortNameShape:
MsgBox Err.Description
End Function
Google has given me
.TextFrame.TextRange.Characters.Font.Fill.Transparency
From https://www.mrexcel.com/forum/excel-questions/510589-transparent-text-shapes-textbox-1-a.html
But that fails on the .Fill
property of Font
object not existing. I'm assuming MS have changed the object model in the 10 years that have passed since the answer was given, but I'm stuck for a current approach.
Thanks
Try this (for just the first member of the current selection)
With ActiveWindow.Selection.ShapeRange(1)
With .TextFrame2.TextRange.Font.Fill
.Transparency = 0.5
End With
End With
If you want to iterate through all the shapes in the current selection, you'll want to test each shape to see if .HasTextFrame and .TextFrame.HasText are true before trying to work with the text.