VBA: Wo werden Grafiken (Eigenschaft picture) gespeichert?

22/04/2009 - 22:15 von Jens Kleinschmidt | Report spam
Hallo,

werden die Grafikdaten, die mittels der Eigenschaft "picture"
z. B. in den Hintergrund einer Userform gesetzt werden,
in der xls-Datei gespeichert?

Es sieht gang da nach aus. Ich bin aber so skeptisch, da dies (im
Gegensatz zu ACCESS) so speichereffizient erfolgt und die xls-Datei
durch das Einfügen nicht einmal um die Dateigröße der entsprechenden
Grafikdatei wàchst.

Wichtig für mich ist die Frage, ob eine EXCEL-Datei mit Userform
und darin enthaltenen Grafiken portabel ist, d. h. auch
ohne Bezug zu externen Grafikdateien funktionsfàhig bleibt.


Gruß
Jens
 

Lesen sie die antworten

#1 Michael Schwimmer
23/04/2009 - 02:49 | Warnen spam
Hallo Jens

Am Wed, 22 Apr 2009 22:15:22 +0200 schrieb Jens Kleinschmidt:
werden die Grafikdaten, die mittels der Eigenschaft "picture"
z. B. in den Hintergrund einer Userform gesetzt werden,
in der xls-Datei gespeichert?



Ja!

Es sieht gang da nach aus. Ich bin aber so skeptisch, da dies (im
Gegensatz zu ACCESS) so speichereffizient erfolgt und die xls-Datei
durch das Einfügen nicht einmal um die Dateigröße der entsprechenden
Grafikdatei wàchst.



In einem anderen Posting hatte ich einmal vor Grafiken in Arbeitsmappen
gewarnt, da diese intern immer als Bitmap vorliegen und die Datei aufblàhen
sollen. Nun, da habe ich mich eindeutig geirrt.

Lediglich die Klasse StdPicture enthàlt ein Bitmap und stellt ein Handle
darauf zur Verfügung. Die Picture-Eigenschaft eines Objekts, beispielsweise
eines Bildsteuerelements nimmt ein Objekt der Klasse StdPicture entgegen
oder liefert einen Objektverweis darauf.

Analysiert man nun das über das Handle referenzierte Bitmap, so stellt man
fest, dass die Größe in X- bzw. Y-Richtung dem Bild entspricht, welches mit
LoadPicture geladen und an eine Picture-Eigenschaft übergeben wurde. Und
zwar unabhàngig davon, wie groß es auf einem Tabellenblatt, einer Form,
Userform oder einem Steuerelement dargestellt wird. Das hat mich zu der aus
jetziger Sicht zugegebenermaßen voreiligen Warnung veranlasst.

Wie nun in der àlteren Biff-Struktur oder im neuen XML-Format das Bild
abgelegt wird, steht auf einem anderen Blatt. Auf jeden Fall ist es aber
so, dass die Bilder in der originalen Auflösung gespeichert werden, egal
wie groß sie letztendlich dargestellt werden.

Im neuen 2007-Format kann man sich das recht gut anschauen, indem man
einfach mal die Dateiendung xls(m/x) in .zip àndert und anschließend
entpackt. Im Ordner Media xl/media befinden sich die Grafikdateien. Wird
das gleiche Bild mehrfach verwendet, existiert aber nur eine Datei. Mit
LoadPicture geladene und in der Datei gespeicherte JPEG-Dateien liegen
darin auch als JPEG vor.

Andere, und verànderte Bilder werden meines Wissens als emf (Extended
Metafile) gespeichert. In diesem Format können Bitmaps mit Vektorgrafiken
kombiniert werden. Diese sind zwar größer als JPEGs, da der komplette
Ordner aber spàter sowieso gezippt wird, macht das nicht so viel aus. Ob
nun Gifs auch als Gifs gespeichert werden, habe ich aber jetzt nicht
probiert. Ich habe aber feststellen können, dass emf-Dateien, welche
entzippt etwa 2 MB einnehmen, nach dem Zippen die resultierenden
Excel-Datei etwa so groß werden lassen, wie die zugrundeliegende
JPEG-Datei.

Nun zum Biff-Format.Ich selbst hatte zwar mal angefangen, die Records
solcher Dateien zu analysieren, bis zu den Grafiken bin ich aber nie
gekommen.

Scheinbar werden auch in Biff-Dateien (xls) Bilder komprimiert. Die
Dateigröße von xls-Dateien bei enthaltenen Bitmaps ist etwas geringer als
die Größe der originalen Bitmap (Statt 5,5 MB etwa 4 MB). Da die
XLS-Dateigröße bei darin gespeicherten JPEG-Dateien mit deren Größe
korelliert, nehme ich an, dass JPEGs auch intern als JPEGs gespeichert
werden. Mehrfach angezeigte Bilder der gleichen Quelle werden auch hier nur
einmal gespeichert.

Über BLIP (Big Large Image or Picture) in Biff-Dateien gibt es auf
folgender Seite mehr Infos:

http://www.xlam.ch/xlimits/dateien....t%20Access
Frage 12: Welche Rolle spielt das Grafikformat eines eingefügten Bildes?

XlLimits ist übrigens eine der interessantesten Seiten, die es über Excel
gibt!

Wichtig für mich ist die Frage, ob eine EXCEL-Datei mit Userform
und darin enthaltenen Grafiken portabel ist, d. h. auch
ohne Bezug zu externen Grafikdateien funktionsfàhig bleibt.



Ja, da kann ich dich beruhigen.


Viele Grüße
Michael


http://michael-schwimmer.de
Masterclass Excel VBA ISBN-10: 3827325250
Das Excel-VBA Codebook ISBN-10: 3827324718
Microsoft Office Excel 2007-Programmierung ISBN-10: 3866454139

Ähnliche fragen