Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Grafik oder Bereich mit VBA als Bild speichern

Grafik oder Bereich mit VBA als Bild speichern
DieterL
Hallo Excelfreunde,
ich habe in einem Datenblatt ein Bild eingefügt (jpg) und mit den Excel Werkzeugen noch Linien und Flächen hizugefügt, die ich mit VBA ansprechen und die Farbe ändern kann. Ich habe das Bild und die Objekte gruppiert und das ganze heißt jetzt Gruppierung 3. Nun möchte ich nach einer Änderung die komplette Grafik mit VBA im Wurzelverzeichnis der Arbeitsmappe als .jpg oder .gif abspeichern wobei eine vorhandene Datei ohne Meldung überschrieben werden soll. Die Lösung, per Hand kopieren und in ein Grafikprogramm als Bild einzufügen, kommt nicht in Frage da der Ablauf automatisch erfolgen soll. Es währe auch schon hilfreich wenn ich den Bereich in dem die Grafik liegt als Bild exportieren könnte z.B. (A1-C20).
Ich hoffe das ich mich verständlich ausgedrückt habe und jemand einen Tip für mich hat. Die Suchfunktion hat jedenfalls keine brauchbare Lösung gebracht. Beste Dank schon mal für die Mühe.
Gruß, DieterL
Anzeige
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 10:05:07
Beverly
Hi Dieter,
speichere die Datei als Webseite. In diesem Fall wird auch ein Ordner erstellt, in welchem das Bild abgelegt wird.
Es gibt natürlich auch die Möglichkeit, die Gruppierung per VBA direkt als Bilddatei abzuspeichern.


Anzeige
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 10:47:24
DieterL
Hallo Beverly,
das abspeichern als htm bringt eine besch.... Qualität und passt auch nicht in meinen Ablauf. Die Grafik die ich abspeichern will, wird sofort von einem FTP Programm das den Speicherort überwacht zu einem Internetserver hochgeladen und soll eine vorhandene ersetzen. Es geht nur, wenn ich die Gruppierung oder den Bereich als Bild speichern kann.
DieterL
Anzeige
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 11:35:43
Beverly
Hi Dieter,
Sub BilderExportierenShape()
Dim shBild As Shape
Set shBild = ActiveSheet.Shapes(1)
BildExportShape shBild
Set shBild = Nothing
End Sub
Sub BildExportShape(shExport As Shape)
Dim chDiagramm As ChartObject
Application.ScreenUpdating = False
shExport.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shExport.Width, shExport.Height)
With chDiagramm.Chart
.Paste
.Export Filename:="C:\Test\Bild1.jpg", FilterName:="JPG" ' andere Grafikformate sind mö  _
_
glich
End With
chDiagramm.Delete
Set chDiagramm = Nothing
Set shExport = Nothing
Application.ScreenUpdating = True
End Sub



Anzeige
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 17:03:10
DieterL
Hallo Beverly,
ich habe Deinen Code ausprobiert und es klappt auch!!
Vielen Dank, jetzt habe ich für beides, Grafik und Bereich als Bild speichern einen Code.
Mehr kann man nicht erwarten.
DieterL
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 11:15:53
Josef
Hallo Dieter,
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Range_To_Image()
  Dim objPict As Object, objChrt As Chart
  Dim rngImage As Range, strFile As String
  
  On Error GoTo ErrExit
  
  With Sheets("Tabelle1") 'Tabellenname - Anpassen!
    
    Set rngImage = .Range("A1:C20")
    
    rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
    
    .PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
    
    Set objPict = .Shapes(.Shapes.Count)
    
    strFile = "E:\Temp\meinBild.gif" 'Pfad und Dateiname für das Bild
    
    objPict.Copy
    
    Set objChrt = .ChartObjects.Add(1, 1, objPict.Width + 8, objPict.Height + 8).Chart
    
    objChrt.Paste
    objChrt.Export strFile
    objChrt.Parent.Delete
    objPict.Delete
    
  End With
  
  ErrExit:
  Set objPict = Nothing
  Set objChrt = Nothing
  Set rngImage = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Grafik oder Bereich mit VBA als Bild speichern
17.01.2010 11:32:18
DieterL
Hallo Sepp,
das wars, das hift mir weiter.
Danke DieterL
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Grafik oder Bereich in Excel mit VBA als Bild speichern


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Füge den folgenden Code in das Modul ein, um ein Bild aus Excel zu exportieren:

    Sub BilderExportierenShape()
       Dim shBild As Shape
       Set shBild = ActiveSheet.Shapes(1) ' Hier die gewünschte Form auswählen
       BildExportShape shBild
       Set shBild = Nothing
    End Sub
    
    Sub BildExportShape(shExport As Shape)
       Dim chDiagramm As ChartObject
       Application.ScreenUpdating = False
       shExport.CopyPicture Appearance:=xlScreen, Format:=xlPicture
       Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shExport.Width, shExport.Height)
       With chDiagramm.Chart
           .Paste
           .Export Filename:="C:\Test\Bild1.jpg", FilterName:="JPG" ' Pfad anpassen
       End With
       chDiagramm.Delete
       Set chDiagramm = Nothing
       Application.ScreenUpdating = True
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden": Stelle sicher, dass der Speichersort in deinem Code korrekt angegeben ist und der Ordner existiert.
  • Fehler: "Objekt nicht gefunden": Überprüfe, ob die Form, die du speichern möchtest, tatsächlich in der angegebenen Auswahl vorhanden ist.
  • Qualitätsprobleme beim Speichern: Experimentiere mit den Exportformaten (z.B. JPG, PNG) und den Einstellungen, um die bestmögliche Bildqualität zu erzielen.

Alternative Methoden

  • Direktes Speichern als Bild: Du kannst auch die gesamte Auswahl als Bild speichern, indem du den Bereich anstelle einer Form auswählst.

    Sub BereichAlsBildSpeichern()
       Dim rngImage As Range
       Set rngImage = ActiveSheet.Range("A1:C20") ' Bereich anpassen
       rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
       ' Rest des Codes einfügen, um das Bild zu exportieren
    End Sub
  • Excel als Webseite speichern: Speichere die gesamte Arbeitsmappe als Webseite, um automatisch alle Bilder in einem Ordner abzulegen.


Praktische Beispiele

  1. Diagramm als Bild speichern: Um ein Diagramm als Bild zu speichern, kannst du den Diagrammobjekt direkt ansprechen:

    Sub DiagrammAlsBildSpeichern()
       Dim chDiagramm As ChartObject
       Set chDiagramm = ActiveSheet.ChartObjects(1) ' Erstes Diagramm auswählen
       chDiagramm.Chart.Export Filename:="C:\Test\Diagramm.jpg", FilterName:="JPG"
    End Sub
  2. Excel-Bereich als PNG speichern: Wenn du die Bildqualität erhöhen möchtest, speichere den Bereich als PNG:

    Sub BereichAlsPNGSpeichern()
       Dim rngImage As Range
       Set rngImage = ActiveSheet.Range("A1:C20")
       rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
       ' Rest des Codes wie oben, aber als PNG speichern
       ' .Export Filename:="C:\Test\Bereich.png", FilterName:="PNG"
    End Sub

Tipps für Profis

  • Nutze Variablen, um den Speicherort dynamisch zu gestalten, z.B. durch Benutzerabfrage.
  • Experimentiere mit verschiedenen Grafikformaten, um die Kompatibilität und Qualität zu optimieren.
  • Denke daran, die Automatisierung zu testen, indem du den Prozess mehrmals durchführst, um sicherzustellen, dass alles reibungslos funktioniert.

FAQ: Häufige Fragen

1. Wie speichere ich ein Bild aus Excel als JPG?
Du kannst das Bild mit einem VBA-Skript speichern, das die .Export-Methode verwendet, um das Bild im JPG-Format zu speichern.

2. Kann ich mehrere Bilder gleichzeitig exportieren?
Ja, du kannst eine Schleife verwenden, um durch alle Shapes oder Diagramme auf dem Arbeitsblatt zu iterieren und jede Form oder jedes Diagramm als Bild zu speichern.

3. Was ist der Unterschied zwischen JPG und PNG?
JPG ist ein komprimiertes Format, das weniger Speicherplatz benötigt, während PNG verlustfrei ist und Transparenzen unterstützt, was es ideal für Grafiken macht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige