2009-12-23 15 views
5

Sil// Merkezini yeniden boyutlandırma için: Ben bir yöntemin adını bulamadıkVisual Basic Macro tüm Fotoğraftan Bir Word belgesine tüm görüntüleri boyutlandırır bir VBA makro çevrimiçi bulundu

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 

o Tüm görüntüleri ortalamak için kullanabilirim. Ne eklemek istediğimi ve nereye eklemem gerektiğini bilen var mı?

Son olarak, çok küçük olduğunu düşündüğüm resimleri silmek istiyorum. Nasıl yapmalıyım? Şekil genişliği 5'ten küçükse ve şeklin yüksekliği 5'ten küçükse, şekli silin.

Büyük miktarda çevrimiçi metnin daha kolay okunması için bazen her şeyi kelimeye yapıştırmayı ve sonra yeniden düzenlemeyi severim. Her dönem-boşluk yerine, her bir cümle için yeni bir satır veren bir dönem manuel satırı ile değiştiriyorum .. Böyle olduğunda daha iyi okurum. Her şeyi yapıştırdığımdan, grafikler de geliyor, bu yüzden tüm görüntülerin boyutunu kontrol edebilmeyi ve gereksiz görüntülerden kurtulmayı çok isterim.

cevap

3

Sanırım görüntüleri ortalayarak hizalayamazsınız. Paragrafları orta hizalayabilirsiniz. Belki böyle bir şey size yardımcı olacaktır: silinmesi için

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

, sadece koşulları karşılayan her şekli nesne için Delete diyoruz.

+0

teşekkür tanımına dahil olmak üzere tam kodu vardır. Bu kod parçası çalıştı. –

1

Kod küçük resim silmek için:

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 
İlgili konular