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

Forumthread: Zwischenspeicher-Inhalt (=Bild) exportieren

Zwischenspeicher-Inhalt (=Bild) exportieren
Axel.Meyer
Hallo Cracks,
um die Auswahl, die in einer Userform getroffen wurde einzufrieren, möchte ich die ganze Userform als gif oder jpg in einem Ordner ablegen.
In meinem Code habe ich mich jetzt soweit durch alte Postings durchgesucht, dass ich die Userform als Bild im Zwischenspeicher habe (als Ctrl + v in PowerPoint verifiziert).
Jetzt fehlt mir noch dieser eine letzte Befehl, den Zwischenspeicherinhalt als gif jpg oder auch wmf zu speichern. Dabei möchte ich (im Gegensatz zu meiner bisherigen Lösung) den Umweg über eine Chart mit eingefügtem Bild umgehen, weil ich hier immer mit der Bildschirmauflösung ÷ Userform-größe kämpfen muss.
Könnt Ihr mir helfen?
Gruß,
Axel
Code für's kopieren der Userform in den Zwischenspeicher:
Public Sub GetWindowSnapShot(Mode As Long)
Dim altscan%, NT As Boolean
NT = IsNT
If Not NT Then
If Mode = 0& Then Mode = 1& Else Mode = 0&
End If
If NT And Mode = 0 Then
keybd_event vbKeySnapshot, 0&, 0&, 0&
Else
altscan = MapVirtualKey(VK_MENU, 0)
keybd_event VK_MENU, altscan, 0, 0
DoEvents
keybd_event vbKeySnapshot, Mode, 0&, 0&
End If
DoEvents
keybd_event VK_MENU, altscan, KEYEVENTF_KEYUP, 0
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zwischenspeicher-Inhalt (=Bild) exportieren
12.05.2011 13:23:46
fcs
Hallo Axel,
damit du aus dem Bild in der Zwischenablage eine JPG-Datei erzeugen kannst muss du via VBA oder anderer Scriptsprache die Zwischenablage in einer Anwendung in ein Dokument einfügen, die im JPG-Format speichern kann. Außer speziellen Grafikprogrammen (deren Möglichkeiten zur Steuerung per VBA ich nicht kenne) geht es z.B. auch via MS Powerpoint.
Nachfolgend ein Beispiel für ein Excel-Makro, das den Inhalt der Zwischenablage in einer Powerpoint-Folie einfügt. Ohne PP-Musterdatei hab ich es nicht hinbekommen.
PP-Musterdatei: https://www.herber.de/bbs/user/74803.zip
Gruß
Franz
'Makro erstellt unter Excel 2007
'Code in einem allgemeinen Modul
'Getestet unter Excel 2007/Powerpoint2007
Sub aZwischenablage_in_JPG()
Call PP_Zwischenablage_Bild(sJPG_Name:="UF_Bild " & Format(Now, "YYYYMMDD hhmmss"), _
sPfad:="C:\Users\Public\Test\UF_Grafiken")   '### Name-JPG und Pfad anpassen !!!
End Sub
Sub PP_Zwischenablage_Bild(sJPG_Name As String, Optional sPfad As String)
'Fügt den Inhalt der Zwischenablage in eine PowerPoint-Folie ein und speichert _
die Powerpoint-Datei als JPG-Datei
Dim oApp_PP As Object, oPP As Object, sfile As String
Dim oShape As Object
'Muster-Powerpointdatei für Inhalt = PP-Datei mit einer!!! Folie
sfile = "C:\Users\Admin\Documents\Grafik_Userform.ppt"   '### anpassen !!!
Set oApp_PP = CreateObject("Powerpoint.Application")
oApp_PP.Visible = True
Set oPP = oApp_PP.presentations.Open(Filename:=sfile, ReadOnly:=True)
oApp_PP.ActiveWindow.View.Paste
With oPP.Slides(1)
Set oShape = .Shapes(.Shapes.Count)
'Größe und Position des eingefügten Objekts anpassen an Folien-Größe, wenn _
Screenshot in Zwischenablage sehr groß
With oShape
.LockAspectRatio = msoTrue
If .Height > 500 Then
.Height = 500
End If
If .Width > 700 Then
.Width = 700
End If
.Left = 360 - .Width / 2
If .Top  sPfad & "\" Then
If Dir(sPfad & "\" & sJPG_Name & ".jpg") = "" Then
'Datei in vorgegebenem Namen umbenennen
Name sfile As sPfad & "\" & sJPG_Name & ".jpg"
Else
MsgBox "Erzeugte JPG-Grafikdatei konnte nicht umbenannt werden!" & vbLf _
& "Datei """ & sJPG_Name & ".jpg" & """ schon vorhanden.", _
vbInformation, "Zwischenablage in JPG-Datei"
End If
Else
MsgBox "Erzeugte JPG-Grafikdatei ""Folie1.jpg"" in Verzeichnis " & """ & sFile" _
& """ nicht gefunden!", vbInformation, "Zwischenablage in JPG-Datei"
End If
End Sub

Anzeige
AW: Zwischenspeicher-Inhalt (=Bild) exportieren
12.05.2011 16:57:52
Axel.Meyer
Hallo Franz,
Dein Code ist mal wieder einer der großen Fische, für die ich Tage brauche, um ihn zu verdauen. Immerhin, so lerne ich. Ich es testen und mich melden, hier schon mal herzlichen Dank für Deine Mühe!
Gruß,
Axel
;

Forumthreads zu verwandten Themen

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

Zwischenspeicher-Inhalt exportieren und speichern


Schritt-für-Schritt-Anleitung

Um ein Bild aus der Zwischenablage als JPG oder GIF zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code fügt den Inhalt der Zwischenablage in eine PowerPoint-Folie ein und speichert die Folie als Bilddatei:

  1. Öffne Excel und erstelle ein neues Modul:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  2. Füge den folgenden Code ein:

    Sub aZwischenablage_in_JPG()
       Call PP_Zwischenablage_Bild(sJPG_Name:="UF_Bild " & Format(Now, "YYYYMMDD hhmmss"), _
       sPfad:="C:\Users\Public\Test\UF_Grafiken")   '### Anpassung des Namens und Pfades
    End Sub
    
    Sub PP_Zwischenablage_Bild(sJPG_Name As String, Optional sPfad As String)
       Dim oApp_PP As Object, oPP As Object, sfile As String
       Dim oShape As Object
       sfile = "C:\Users\Admin\Documents\Grafik_Userform.ppt"   '### Pfad anpassen
       Set oApp_PP = CreateObject("Powerpoint.Application")
       oApp_PP.Visible = True
       Set oPP = oApp_PP.presentations.Open(Filename:=sfile, ReadOnly:=True)
       oApp_PP.ActiveWindow.View.Paste
       Set oShape = oPP.Slides(1).Shapes(oPP.Slides(1).Shapes.Count)
    
       ' Anpassung von Größe und Position
       With oShape
           .LockAspectRatio = msoTrue
           If .Height > 500 Then .Height = 500
           If .Width > 700 Then .Width = 700
           .Left = 360 - .Width / 2
       End With
    
       ' Bild speichern
       If Dir(sPfad & "\" & sJPG_Name & ".jpg") = "" Then
           oPP.SaveAs sPfad & "\" & sJPG_Name & ".jpg", ppSaveAsJPG
       Else
           MsgBox "Datei bereits vorhanden!"
       End If
    
       oPP.Close
       oApp_PP.Quit
    End Sub
  3. Passe die Dateipfade und Namen an, bevor Du den Code ausführst.


Häufige Fehler und Lösungen

  • Fehler: "Datei bereits vorhanden!"

    • Lösung: Ändere den Dateinamen im Code oder überprüfe den angegebenen Ordner auf vorhandene Dateien.
  • PowerPoint öffnet sich nicht

    • Lösung: Stelle sicher, dass Microsoft PowerPoint auf Deinem Computer installiert ist und aktualisiert wurde.
  • Bild wird nicht eingefügt

    • Lösung: Überprüfe, ob ein Bild in der Zwischenablage gespeichert ist. Dies kannst Du testen, indem Du Ctrl + V in ein PowerPoint-Dokument einfügst.

Alternative Methoden

Falls Du den Umweg über PowerPoint umgehen möchtest, kannst Du auch Grafikprogramme wie Paint oder GIMP verwenden. Hier ist eine kurze Anleitung, wie Du das mit Paint machen kannst:

  1. Öffne Paint.
  2. Drücke Ctrl + V, um das Bild aus der Zwischenablage einzufügen.
  3. Speichere die Datei über "Datei" > "Speichern unter" und wähle JPG als Dateiformat.

Praktische Beispiele

  1. Bild aus der Zwischenablage speichern: Nachdem Du das Bild in der Zwischenablage hast, führe das Makro aus, um die Datei als JPG zu speichern.
  2. PowerPoint-Folie als Bild speichern: Verwende die Methode, um Bilder aus der Zwischenablage in eine PowerPoint-Folie einzufügen und als Bilddatei zu speichern.

Tipps für Profis

  • Nutze die Möglichkeit, mehrere Bilder nacheinander aus der Zwischenablage zu speichern, indem Du den Dateinamen dynamisch mit einem Zeitstempel versiehst.
  • Experimentiere mit den Größenanpassungen im VBA-Code, um sicherzustellen, dass die Bilder in der gewünschten Qualität gespeichert werden.

FAQ: Häufige Fragen

1. Wie kann ich ein Bild aus der Zwischenablage speichern? Um ein Bild aus der Zwischenablage zu speichern, kannst Du den oben genannten VBA-Code verwenden, um es in PowerPoint einzufügen und als JPG-Datei zu exportieren.

2. Funktioniert das nur mit PowerPoint? Ja, der vorgestellte Ansatz verwendet PowerPoint, um die Zwischenablage als Bild zu speichern. Es gibt jedoch auch andere Programme, die ähnliche Funktionen bieten.

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