Projekt Coole MessageBox
#1
Liebe Leserin, lieber Leser,

die Messagebox ist gedacht für das schnelle temporäre Anzeigen von Informationen oder dem einfachen Abfragen einer Entscheidung zu einem Sachverhalt.

Oft wird jedoch in Foren gefragt, ob man denn die Schriftart größer machen könnte oder vielleicht das Icon oder die Schaltflächenbeschriftungen ändern könnte.

Hier heißt es oft: Nein, das geht nicht.

Dass das alles aber doch geht, will ich hier mit diesem Projekt Coole MsgBox mal aufzeigen.

Grundsätzlich kann man mit VBA die Excel-MsgBox, die API-Messagebox, die MessageBoxIndirekt oder die MsgBoxTimeOut verwenden.
Zu vielen Themen lassen sich ja auch schon Beiträge hier in diesem Forum finden.

Dieser Workshop befasst sich ausschließlich mit der internen Excel-MsgBox und es können folgende spannende Dinge damit angestellt werden:
  • Nutzen des Hilfebuttons für eigene Zwecke
  • Bis zu vier Buttons möglich mit individuellen Buttontexten
  • Systemkreuzklick gibt einen eigenen Text zurück, damit sind fünf Rückgaben möglich
  • Individuelles Icon in der MsgBox setzbar
  • Schriftfarbe, Schriftgröße und Schriftart sowie fett/kursiv setzbar für das Textfeld
  • MsgBox-Hintergrund: Farbe, Struktur oder eigenes Bild setzbar
  • Transparente Msgbox: möglich, aber darauf wurde bislang verzichtet
  • MsgBox positionierbar und auch Größenänderung möglich, ggf. Autozentrierung auf dem Bildschirm
  • Alle Buttons einzeln mit Textfarbe und/oder Hintergrundfarbe versehbar
  • Alle Buttons einzeln verschiebbar und auch Größenänderung möglich
  • Timeout setzbar: Nach Timeout eigener Rückgabetext z.B. "TimeOut!"
  • CountDown setzbar: Nach Timeout eigener Rückgabetext z.B. "TimeOut!"
  • Formatierung der Titelleiste und des Rahmens

Die hier vorgestellte "Coole MsgBox" kann das alles.
Aber es ist viel Code und wenn man weniger benötigt wäre auch weniger Code von Vorteil.
Deshalb findest Du in der anliegenden Datei jede Menge Beispiele mit Code, jeweils angepasst an die gewünschten Bedürfnisse.
Dass man noch viel mehr machen kann und das nicht alles hier gezeigt werden kann, versteht sich von selbst.

Klick Dich einfach mal durch die angezeigten Buttons und verwende genau den benötigten Code.

Start
Vom User wird zunächst immer die MsgBoxEx aufgerufen.
Da der Code mit Aufruf der Excel-MsgBox nicht weiterläuft, benötigen wir hierfür einen Trick. Man kann sich z.B. in die entsprechende Prozedur einhooken.

In diesem Workshop wird aber ausschließlich mit dem Timer gearbeitet, der nach wenigen mSek unsere Callback-Funktion MsgBoxCallbackProc aufruft.
Hier wird zunächst das Handle zur MsgBox ermittelt. Dann können bereits alle Elemente mit neuen Texten versehen, die MsgBox oder die Buttons verschoben werden oder ein neues Icon gesetzt werden.

Für weitere Dinge, u.a. auch das Abfangen von Buttonklicks, Mausbewegungen usw., hooken wir uns in die Meldungsschleife der Excel-MsgBox ein und leiten alle Messages an unsere eigene Prozedur WindowProc um.

So, jetzt genug der Schreiberei. Die Codes sind komplett kommentiert und geben dem interessierten User hoffentlich einen Einblick, wie es funktionieren kann. Es führen ja noch mehr Wege nach Rom.


.xlsb   MsgBox-Cool-Workshop-CEF.xlsb (Größe: 1,39 MB / Downloads: 5)

Viel Spaß und Erfolg beim Anwenden und Tüfteln...

PS: Fragen, Funktionsfehler und Anregungen bitte in der Rubrik Diskussionen zu den Beispielen anbringen. Es ist noch neu und wenig getestet....

_________
viele Grüße
Karl-Heinz
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste