Wie kann ich mit VBA ein Bild (z.B Screenshot), welches sich in der Zwischenablage befindet, in eine Datei abspeichern?
Bin dankbar für jeden Tipp
Gruss Stefan B
Option Explicit
Sub Bild_exportieren()
Dim myChartObject As ChartObject, myShape As Shape
Dim bolfound As Boolean
Application.ScreenUpdating = False
Worksheets.Add
ActiveSheet.Paste
For Each myShape In ActiveSheet.Shapes
If myShape.Type = msoPicture Then bolfound = True: Exit For
Next
If bolfound Then
myShape.CopyPicture Appearance:=2, Format:=-4147
Set myChartObject = ActiveSheet.ChartObjects.Add(0, 0, myShape.Width, myShape.Height)
With myChartObject
.Activate
.Chart.Paste
.Chart.Export Filename:=ActiveWorkbook.Path & "\zwischenablage.jpg", FilterName:="JPG", Interactive:=False
End With
Set myChartObject = Nothing
Set myShape = Nothing
End If
With Application
.DisplayAlerts = False
ActiveSheet.Delete
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Um ein Bild aus der Zwischenablage in einer Datei zu speichern, kannst Du ein VBA-Skript verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbook)“ und wähle „Einfügen“ > „Modul“.
Kopiere den folgenden Code in das Modul:
Option Explicit
Sub Bild_exportieren()
Dim myChartObject As ChartObject, myShape As Shape
Dim bolfound As Boolean
Application.ScreenUpdating = False
Worksheets.Add
ActiveSheet.Paste
For Each myShape In ActiveSheet.Shapes
If myShape.Type = msoPicture Then bolfound = True: Exit For
Next
If bolfound Then
myShape.CopyPicture Appearance:=2, Format:=-4147
Set myChartObject = ActiveSheet.ChartObjects.Add(0, 0, myShape.Width, myShape.Height)
With myChartObject
.Activate
.Chart.Paste
.Chart.Export Filename:=ActiveWorkbook.Path & "\zwischenablage.jpg", FilterName:="JPG", Interactive:=False
End With
Set myChartObject = Nothing
Set myShape = Nothing
End If
With Application
.DisplayAlerts = False
ActiveSheet.Delete
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus: Drücke ALT + F8, wähle „Bild_exportieren“ und klicke auf „Ausführen“.
Mit diesem Skript kannst Du ein Bild aus der Zwischenablage als JPG speichern. Es wird im gleichen Verzeichnis wie Dein aktuelles Workbook gespeichert.
Fehler: Bild wird nicht gespeichert
Fehler: Kein Pfad gefunden
Wenn Du kein VBA verwenden möchtest, kannst Du auch die folgenden Methoden ausprobieren:
Hier sind einige Szenarien, in denen Du ein Bild aus der Zwischenablage speichern könntest:
1. Wie kann ich das Bild in einem anderen Format speichern?
Du kannst das Format in der Zeile .Chart.Export ändern, indem Du den FilterName entsprechend anpasst (z.B. "PNG" für PNG-Dateien).
2. Funktioniert das auch in Excel Online?
Leider ist VBA nicht in Excel Online verfügbar. Du kannst diese Methode nur in der Desktop-Version von Excel verwenden.