Selection.Rotate Method (Visio)
Rotates selected shapes either as a group or individually about their pins.
expression .Rotate(Angle, AngleUnitsNameOrCode, BlastGuards, RotationType, PinX, PinY, PinUnitsNameOrCode)
expression A variable that represents a Selection object.
Specifies the angle to rotate the selection. See Remarks for possible values.
Specifies the units to use for Angle. See Remarks for possible values. The default is degrees.
True to override formulas in the ShapeSheet of any of the selected shapes to which the GUARD function has been applied; False to leave guarded formulas unchanged. The default is False.
Specifes how the selection is to be rotated. See Remarks for possible values.
When RotationType is visRotateSelectionWithPin, specifies the X-position of the pin about which the selection is to be rotated.
When RotationType is visRotateSelectionWithPin, specifies the Y-position of the pin about which the selection is to be rotated.
Specifies the units to use for PinX and PinY. See Remarks for possible values. The default is inches.
The following possible values for RotationType are declared in VisRotationTypes in the Visio type library.
Rotates the selection around a pin.
Rotates the selection relative to the center of the selection.
Rotates the selected shapes around their pins relative to their current angle.
Passing True for the optional BlastGuards argument overrides formulas in the ShapeSheet of any of the selected shapes to which the GUARD function has been applied.
The default value for RotationType is visRotateSelection .
You can specify AngleUnitsNameOrCode or PinUnitsNameOrCode as an integer (a member of VisUnitCodes) or a string value such as "radians" or "inches". If the string is invalid or the unit code is inappropriate (nontextual), an error is generated.
For a complete list of valid unit strings along with corresponding Automation constants (integer values), see About units of measure.
This Microsoft Visual Basic for Applications (VBA) macro shows how to use the Rotate method to rotate a selection 45 degrees relative to the center of the selection.
Public Sub Rotate_Example() Dim vsoShape1 As Visio.Shape Dim vsoShape2 As Visio.Shape Set vsoShape1 = Application.ActiveWindow.Page.DrawRectangle(1, 9, 3, 7) Set vsoShape2 = Application.ActiveWindow.Page.DrawRectangle(3, 6, 5, 5) ActiveWindow.DeselectAll ActiveWindow.Select vsoShape1, visSelect ActiveWindow.Select vsoShape2, visSelect Application.ActiveWindow.Selection.Rotate 45, visDegrees End Sub