
Sub alignGraphicElementToTopRightCornerOfPage()
'
' alignGraphicElementToTopRightCornerOfPage Macro
'
'
Selection.ShapeRange.Align msoAlignTops, True
Selection.ShapeRange.Align msoAlignRights, True
End Sub
Vea la diferencia entre lo que sucede cuando uso la macro y lo que sucede cuando ejecuto manualmente los múltiples comandos desde la cinta. Creé la macro usando la función de grabación.
La macro hace que el elemento se salga de la página, lo cual es un comportamiento no deseado, que no es lo que sucedió cuando grabé la macro.
¿Por qué no funciona? Grabé la macro correctamente. ¿Hay algún código vba que deba cambiar o agregarle?
Respuesta1
Solucioné el problema agregando nuevas líneas para la macro de VBA.
Sub alignGraphicElementToTopRightCornerOfPage()
'
' alignGraphicElementToTopRightCornerOfPage Macro
'
'
Selection.ShapeRange.WrapFormat.Type = wdWrapFront
' choose the wrapping type
' the following values are good "3" "wdWrapFront" an "wdWrapTight"
' I don't know what "3" does but Microsoft Office 2007 uses it
Selection.ShapeRange.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionColumn
Selection.ShapeRange.RelativeVerticalPosition = _
wdRelativeVerticalPositionPage
Selection.ShapeRange.RelativeHorizontalSize = wdRelativeHorizontalSizePage
Selection.ShapeRange.RelativeVerticalSize = wdRelativeVerticalSizePage
' these commands are needed if the wrapping type is "3" or "wdWrapFront"
' ensure the shape is aligned to the top right corner of the page
' This also fixes the formatting problems when the page has text on it,
' to prevent an extra line break or blank space appearing on the screen
' that the user did not intentionally create
Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)
Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)
' these commands are needed if the wrapping type is "wdWrapTight"
Selection.ShapeRange.Align msoAlignTops, True
Selection.ShapeRange.Align msoAlignRights, True
' start aligning the image to the top right of the page
End Sub