2009-12-23 24 views
5

me encontré con una macro VBA en línea que cambia el tamaño de todas las imágenes en un documento de Word:macro de Visual Basic en Word cambiar el tamaño/Centro/Borrar todas las imágenes

Sub ResizeAllImages() 
''# make all images (both inline and floating) 
''# 11 cm wide while preserving aspect ratio 

Dim oShp As Shape 
Dim oILShp As InlineShape 

For Each oShp In ActiveDocument.Shapes 
    With oShp 
     .Height = AspectHt(.Width, .Height, _ 
     CentimetersToPoints(11)) 
     .Width = CentimetersToPoints(11) 
    End With 
Next 

For Each oILShp In ActiveDocument.InlineShapes 
    With oILShp 
     .Height = AspectHt(.Width, .Height, _ 
     CentimetersToPoints(11)) 
     .Width = CentimetersToPoints(11) 
    End With 
Next 
End Sub 

no pude encontrar el nombre de un método que Podría usar para alinear en el centro todas las imágenes. ¿Alguien sabe lo que necesito agregar, y dónde tendría que agregarlo?

Por último, me gustaría eliminar imágenes que considero demasiado pequeñas. ¿Cómo podría ... si el ancho de forma es menor que 5 y la altura de la forma es menor que 5, elimine la forma.

Para facilitar la lectura de grandes cantidades de texto en línea, a veces me gusta pegar todo en palabras, y luego reorganizarlo. Sustituyo cada período en blanco, con una línea de período manual, que me da una nueva línea para cada oración. Leo mejor cuando es así. Como pego todo, los gráficos también aparecen, por lo que me gustaría poder controlar el tamaño de todas las imágenes y deshacerme de cualquier imagen innecesaria.

Respuesta

3

Creo que no se puede alinear en el centro de las imágenes. Puede alinear los párrafos en el centro. Tal vez algo como esto le ayudará a:

For Each oILShp In ActiveDocument.InlineShapes 
    oILShp.Select 
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 
Next 

para su eliminación, simplemente llame Delete para cada objeto en forma de satisfacer sus condiciones.

+0

Gracias. Esa pieza de código funcionó. –

1

Código eliminar pequeñas imágenes:

Sub DeleteSmallPictures() 
Dim iShp As InlineShape 

    For Each iShp In ActiveDocument.InlineShapes 
     With iShp 
      If .Width < CentimetersToPoints(5) Then 
       iShp.Delete 
      End If 
     End With 
    Next iShp 
End Sub 
Cuestiones relacionadas