2016-04-01 6 views
0

Ich habe meinen Code unter, dass in einem Bereich und konvertiert es zu einem Bild, das ich automatisch speichern. Das Bild wird immer oben rechts eingefügt. Gibt es eine Möglichkeit, das Bild auf dem Diagramm zu zentrieren oder das Diagramm sogar so zu verkleinern, dass es nur der Bildgröße entspricht?Wie zentriert eingefügtes Bild in Excel-Diagramm mit VBA?

Sub topicture(Sendrng As range) 

     Dim xcht As Chart 
     Dim Sname As String 
     Sname = ActiveSheet.Name 
     Sendrng.CopyPicture xlScreen, xlPicture 
     Set xcht = Charts.Add 
     With xcht 
      .ChartArea.ClearContents 
      .Paste 
      .ChartArea.Left = (xcht.ChartArea.Width - .Width)/2 
      .Export Filename:="CDrive\Photos\" & Sname & ".jpg", Filtername:="JPG" 
      .Delete 
     End With 
End Sub 

Antwort

1

Sie können die Grafik die Größe, wenn Sie es auf einem Arbeitsblatt setzen:

Sub tester() 
    ExportRangePicture Range("B4:G20"), "C:\_Stuff\test1.jpg" 
    ExportRangePicture Range("B4:G4"), "C:\_Stuff\test2.jpg" 
End Sub 


Sub ExportRangePicture(Sendrng As Range, fPath As String) 
    Dim xcht 
    Sendrng.CopyPicture xlScreen, xlPicture 
    Set xcht = Sendrng.Parent.Shapes.AddChart 
    With xcht.Chart 
     Do While .SeriesCollection.Count > 0 
      .SeriesCollection(1).Delete 
     Loop 
     .Parent.Width = Sendrng.Width 
     .Parent.Height = Sendrng.Height 
     .Paste 
     .Export Filename:=fPath, Filtername:="JPG" 
     .Parent.Delete 
    End With 
End Sub