'This is sample code to illustrate ITransform2D Interface. Load polygon feature class ' in MXD as first layer. Select one polygon and run this code in VBA. This code may be 'efficient or handle any bugs.THIS IS FOR SAMPLE ONLY. Author is not responsible for dataloss ' or any other issues. Please take backup of your data, before you try. Dim pMxdocument As IMxDocument Sub Main() Dim pTransform As ITransform2D Dim pPolygon As IPolygon Dim pFSel As IFeatureSelection Dim pSelSet As ISelectionSet Dim pFeature As IFeature Dim sLayerName As String Dim pFCursor As IFeatureCursor Set pMxdocument = ThisDocument Set pMapLayer = pMxdocument.FocusMap.Layer(0) If pFeature Is Nothing Then Set pFSel = pMapLayer Set pSelSet = pFSel.SelectionSet pSelSet.Search Nothing, False, pFCursor Set pFeature = pFCursor.NextFeature pMxdocument.FocusMap.ClearSelection End If Set pPolygon = pFeature.Shape Call RotatePoly(pPolygon, 45) pFeature.Store End Sub Sub RotatePoly(pPolygon As IPolygon, dAng As Double) Dim pArea As IArea Dim pOrigin As IPoint Dim dAngle As Double Dim pTransform As ITransform2D Dim Pi As Double Dim pRotationEnvelop As IEnvelope Set pMxdocument = ThisDocument Set pMapLayer = pMxdocument.FocusMap.Layer(0) Set pRotationEnvelop = New Envelope Pi = 4 * Atn(1) dAngle = dAng * Pi / 180 If (Not pPolygon.IsEmpty) Then Set pArea = pPolygon Set pOrigin = pArea.Centroid Set pTransform = pPolygon pTransform.Rotate pOrigin, dAngle Set pRotationEnvelop = pPolygon.Envelope pMxdocument.ActiveView.PartialRefresh esriViewGeography, pMapLayer, pRotationEnvelop pMxdocument.ActiveView.PartialRefresh esriViewGeoSelection, pMapLayer, pRotationEnvelop End If End Sub