none
Größe der ActiveX-Elemente von Bildschirmauflösung abhängig RRS feed

  • Frage

  • Hallo zusammen!

    Alle, die ActiveX-Elemente in Excel verwenden, dürften das seit Jahren existierende Problem kennen: Man richtet die Elemente schön aus, öffnet die Excel-Datei dann mit einer anderen Bildschirmauflösung (z. B. auf einem anderen PC) oder ändert die Auflösung während Excel geöffnet bleibt und alles sieht aus wie nach einem Erdbeben! Je nach Excel-Version und Einstellungen wird entweder die Schriftgröße der Caption viel zu klein/groß angezeigt oder - noch schlechter - das ganze Element hat seine Größe geändert. Schlimmstenfalls ändert das Element seine Größe anschließend bei jedem Klick, sodass es danach entweder den ganzen Bildschirm ausfüllt oder infinitesimal klein geworden ist.

    Für Office 2003 gab es ein Update . Nur scheint MS dabei wenig gelernt zu haben, denn unter Excel 2007 taucht fast dasselbe Problem grad wieder auf. Da helfen auch tausend verzweifelte Hilferufe in Foren nichts.

     

    Konkret lässt sich unter Excel 2007 folgendes Verhalten feststellen:

    Die üblichen ActiveX-Elemente (nicht MS Forms 2.0) verändern sich "nur", wenn man zur Laufzeit die Bildschirmauflösung ändert, nicht aber wenn man die Datei unter einer anderen Auflösung erneut öffnet. Das ist in meinen Augen nicht so schlimm, da man Excel ja zwischenzeitlich schließen kann.

    Deutlich hässlicher ist das Verhalten bei MS Forms 2.0. wenn man einen solchen Frame einfügt, um darin dann weitere Elemente zu positionieren, verändert der Frame sich zwar nicht, wenn man zur Laufzeit die Auflösung ändert, jedoch ist die Größe des Frames davon abhängig, unter welcher Bildschirmauflösung die Exceldatei geöffnet wird!

    Ich weiß - der nächste Kommentar wird sein "Unter Eigenschaften kann man einstellen, ob der Frame von der Zellposition und/oder -größe abhängig sein soll". Das weiß ich auch... Nur diese Placement -Eigenschaft ist eine Wahl zwischen Pest und Cholera:

    • Von Zellpos. und -größe abhängig ⇒ Die Beschriftung und der Inhalt verändern die Größe.
    • Von Zellgröße unabhängig ⇒ Der Frame verändert seine Größe. Die Beschriftung und der Inhalt bleiben (wenigstens) gleich.

    Was mich verwundert, ist, dass ich dieses Verhalten nur bei den neuen Dateiformaten (xlsx, xlsm, xlsb) festellen konnte, nicht aber im Kompatibilitätsmodus.

    Ich habe mal eines Testdatei erstellt, um das Verhalten besser nachvollziehen zu können. Ich habe sie mit einer Bildschirmauflösung von 1280×1024 Pixel erstellt. Unter den Frames ist ein rot eingerahmter Screenshot, damit man sieht, wie die Frames korrekt aussehen sollten.

    Weiß irgendjemand von Euch, wie man das Problem eleganter umgeht, als in der VBA Prozedur Workbook_Open eine Neuausrichtung vorzunehmen?

    Viele Grüße und Danke für die Geduld beim Lesen ;-)
    ingu

    Montag, 27. Dezember 2010 09:16

Antworten

  • hallo maninweb,

    danke für die Antwort. Aber ich möchte bei einer Datei ganz gerne diese Elemente verwenden, weil sie viel mehr nützliche Möglichkeiten bieten und nebenbei auch schöner aussehen. Ich hab das Problem jetzt im Quellcode gelöst. Allerdings gleicht das Verhalten generell meiner Meinung nach einem Bug. Ich fänd's super, wenn der vielleicht irgendwann "gefixt" würde.

    Gruß, ingu

    Mittwoch, 29. Dezember 2010 17:07

Alle Antworten

  • Hallo ingu...

    falls es keinen zwingenden Grund gibt, Frames zu verwenden, würde ich auf diese verzichten und entweder ein Shape (Zeichenobjekte, kein MSForms) verwenden oder ein Label aus den ActiveX Elementen, das mit dem SpecialEffect = fmSpecialEffectEtched eingestellt ist. Sieht dann aus wie ein Frame, nur ohne Titel. Ob das Ganze jetzt eine Besserung bewirkt, habe ich hier nicht getestet.

    Gruß

    Dienstag, 28. Dezember 2010 08:51
  • hallo maninweb,

    danke für die Antwort. Aber ich möchte bei einer Datei ganz gerne diese Elemente verwenden, weil sie viel mehr nützliche Möglichkeiten bieten und nebenbei auch schöner aussehen. Ich hab das Problem jetzt im Quellcode gelöst. Allerdings gleicht das Verhalten generell meiner Meinung nach einem Bug. Ich fänd's super, wenn der vielleicht irgendwann "gefixt" würde.

    Gruß, ingu

    Mittwoch, 29. Dezember 2010 17:07