
Habe in allen Foren nachgesehen und hatte bei meinem Problem nicht viel Glück. Ich möchte eine benutzerdefinierte Schaltflächenleiste mit Formen erstellen und sie dann unten in Excel andocken. Das ist schwierig, da jeder Benutzer einen anderen Monitor und eine andere Bildschirmauflösung hat. Nach einigen Recherchen scheint es, dass ich application.height und object.top verwenden kann, um die Schaltflächenleiste zu lokalisieren. Das Problem ist, dass ich beim Scrollen auf der Seite das Makro ausführen muss. Ist das überhaupt möglich?
Antwort1
Mir fällt keine Möglichkeit ein, dies mit Formen zu tun, aber Sie könnten Ihrem Projekt ein UserForm hinzufügen und dann die gewünschten Schaltflächen/Beschriftungen/Bilder zum Formular hinzufügen. Standardmäßig wird ein Formular getrennt von den Excel-Tabellen ausgeführt, sodass es nicht durch Scrollen beeinflusst wird, aber dennoch im Vordergrund des Excel-Fensters bleibt.
Um ein Formular hinzuzufügen, öffnen Sie das Codefenster, klicken Sie mit der rechten Maustaste auf Ihr VBA-Projekt und wählen SieEinfügen...=>Benutzerformular. Sie können Application.Width
, Application.Height
, Application.Top
und verwenden Application.Left
, um zu ermitteln, wo auf dem Bildschirm das Excel-Fenster des Benutzers angezeigt wird, und dann UserForm1.Width
usw. verwenden, um das Formular nach Bedarf neu zu positionieren und es dort zu behalten, wo Sie es haben möchten (ersetzen Sie es UserForm1
durch den Namen, den Sie dem Formularobjekt geben möchten).
Sie können das Formular an einer bestimmten Stelle auf dem Bildschirm öffnen, aber die Benutzer können es verschieben (ich habe noch nie versucht, die Position eines Formulars zu fixieren). Sie müssen bestimmen, welche Ereignisse überwacht werden sollen, um das Formular neu zu positionieren, falls Sie dies wünschen. Denken Sie daran, dass eine zu hohe oder zu häufige Überwachung zu einer allgemeinen Leistungseinbuße für Ihre Benutzer führt.