View Single Post
Old 11-07-2008, 23:24
shelbym's Avatar
shelbym shelbym is offline
Senior Member
Join Date: Nov 2002
Location: Cheyenne, WY
Posts: 1,770
Blog Entries: 10
Send a message via ICQ to shelbym Send a message via AIM to shelbym Send a message via MSN to shelbym Send a message via Yahoo to shelbym
Default Try this...

You almost have it and are on the right track...basically you need to.

1. Find all the text objects
2. Get their rotation angles
3. Mirror each piece of text back
4. Set the rotation angle back adjusting for the mirror*

*If you take a normal piece of text, horizontally mirror it look at the rotation angle it is 180 degrees. So when we set the angle back we have to adjust for this shift. Hope that make sense. Do you code might look something like this.
Sub FixText()
    Dim s As Shape
    Dim dblRotate As Double
    Optimization = True 'Stop the screen for redrawing (aka speed up the macro)
        For Each s In ActivePage.Shapes.FindShapes(Type:=cdrTextShape) 'Find all the text objects
            dblRotate = s.RotationAngle 'Get the angle of the shape
            s.Flip cdrFlipHorizontal 'Flip the shape back
            s.RotationAngle = dblRotate - 180 'Set the angle adjusting for the horizantal mirror shift
        Next s
    Optimization = False 'Turn screen redrawing back on
    ActiveWindow.Refresh 'Refresh the window
    Application.Refresh 'Refresh the Application
End Sub
Hope I got it right and it helps!

Reply With Quote