- Startseite
- Neuigkeiten
- Über mich
- Referenzen
- Beispiele
- Artikel
- Vorträge
- Tools
- Access-Tipps
- Excel-Tipps
- Spielereien
- Kontakt
- Impressum
- Datenschutz
Meine Projekte:
Bild aus der Zwischenablage in eine Datei speichern
Ein Kunde benötigte eine Funktion, um eine Bilddatei aus einem anderen Programm in einen von seiner Anwendung festgelegten Ordner zu kopieren. Drag & Drop war nicht möglich, das Bild konnte nur kopiert oder per Menü manuell gespeichert werden.
Das Auslesen der Zwischenablage ist für einen Text mit überschaubarem Aufwand möglich, Bilddateien abzuspeichern geht nur über viele, viele API-Aufrufe. Es sei denn, man „missbraucht“ das Chart-Objekt in Excel und kann so mit reinem VBA arbeiten. Das ist zwar relativ langsam, im gegebenen Fall aber vollkommen ausreichend.
Und so geht’s
Zunächst wird Excel (nicht sichtbar) geöffnet, eine neue Arbeitsmappe angelegt und das Bild auf das erste Tabellenblatt kopiert:
Set xlApp = CreateObject("Excel.Application") xlApp.Workbooks.Add Set xlBook = xlApp.ActiveWorkbook Set xlSheet = xlBook.Sheets(1) xlSheet.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
Dann wird das Shape mit dem eingefügten Bild kopiert und in ein neues, leeres Diagramm kopiert, das genau die Maße des Shapes hat:
Set xlShape = xlSheet.Shapes(1) xlShape.Copy Set xlChart = xlSheet.ChartObjects.Add(0, 0, xlShape.Width, xlShape.Height) xlChart.Chart.ChartArea.Select xlChart.Chart.Paste
Jetzt kann das Diagramm (und damit das enthaltene Bild) in eine Datei kopiert werden:
xlChart.Chart.Export "C:\temp\Testbild.png"
Die erlaubte Bildformate sind .bmp .gif .jpg und .png und werden automatisch anhand der übergebenen Dateiendung erkannt und verwendet.
Download
Bild aus Zwischenablage für Access 2016 (und neuer)
(Datei: BildAusZwischenablage.zip, ca. 60 KB)
Bitte denken Sie daran, dass Sie die Datei(en) nach dem Download Zulassen müssen.
Hier steht, warum und wie.
