2011-05-31 3 views
1

Quelqu'un peut me aider avec un problème dans PPT 2007.rogner une image (Enhanced Metafile) dans PPT 2007

J'ai une image (un tableau Excel collé comme 'image (Enhanced Metafile)') dans une diapositive . J'ai juste besoin de recadrer cette image pour l'insérer dans la diapositive. J'ai essayé code suivant, mais en vain:

'1:

Avec ActivePresentation.Slides (1) .Shapes (1)

.PictureFormat.CropLeft = 10 

    .PictureFormat.CropTop = 10 

    .PictureFormat.CropRight = 10 

    .PictureFormat.CropBottom = 10 

End With 

'Runtime error "ActiveX Component can't create object 

' 2:

ActiveWindow.Selection.ShapeRange.PictureFormat.CropRight = 10 

ActiveWindow.Selection.ShapeRange.PictureFormat.CropLeft = 10 

ActiveWindow.Selection.ShapeRange.PictureFormat.CropBottom = 10 

ActiveWindow.Selection.ShapeRange.PictureFormat.CropTop = 10 

'Object doesnt support this property or method 

Toute suggestion est la bienvenue.

+0

J'ai testé en utilisant un graphique d'Excel 2010 comme un fichier EMF dans PowerPoint 2010 et votre code fonctionne très bien. Peut-être ne colles-tu pas comme un EMF ou tu n'as pas désigné le bon objet? Essayez une diapositive sans autres formes, seulement votre graphique .EMF. –

+0

Oui, le code fonctionne lorsqu'il n'y a pas d'autres objets dans la diapositive. Mais, dans ce cas, il y a beaucoup d'autres objets et images. Comment puis-je les différencier? La méthode de sélection collée ci-dessus ne fonctionne pas ... – user744637

Répondre

0

Cela fonctionne avec les champs électromagnétiques collés à partir d'Excel:

Dim oSh as Shape 
    Set oSh = ActiveWindow.Selection.ShapeRange(1) 
    ' Note: ShapeRange(1), not just ShapeRange 
    ' That's the problem with your second example 

    With oSh 
    .CropLeft = 10 
    ' etc 
    End With 

Le fait qu'il hurle sur un objet activex dans le premier exemple, je me demande si la première forme est vraiment une FEM, qui ne serait pas un ActiveX objet.