2009-12-23 2 views
5

znalazłem makr VBA online, które zmienia rozmiar wszystkich obrazów w dokumencie Word:makro Visual Basic w programie Word do Resize/centrum/Usuń wszystkie zdjęcia

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 

nie mogę znaleźć nazwę metody, która Mogę użyć do wyśrodkowania wszystkich zdjęć. Czy ktoś wie, co muszę dodać i gdzie powinienem go dodać?

Na koniec chciałbym usunąć obrazy, które uważam za zbyt małe. Jak bym zrobił ... Jeśli szerokość kształtu jest mniejsza niż 5, a wysokość kształtu mniejsza niż 5, usuń kształt.

Dla łatwiejszego czytania dużych ilości tekstu online, czasami lubię wklejać wszystko w słowie, a następnie zmieniać je. Zamieniam każdy okres-spację, z linią kropki-instrukcji, która daje mi nową linijkę dla każdego zdania. Czytam lepiej, kiedy to jest tak. Odkąd wszystko wklejam, grafika też jest dostępna, więc chciałbym móc kontrolować rozmiar wszystkich obrazów i pozbywać się niepotrzebnych obrazów.

Odpowiedz

3

Myślę, że nie można wyśrodkować zdjęć. Możesz wyśrodkować akapity. Być może coś w tym pomoże Ci:

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

do usunięcia, po prostu zadzwoń Delete dla każdego obiektu Shape spełniających te warunki.

+0

Dzięki. Ten fragment kodu zadziałał. –

1

Kod usunąć małe zdjęcia:

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 
Powiązane problemy