Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige