gibt es eine Möglichkeit eine UF zu erstellen, die ein ganz individuelles aussehen hat, d.h. nicht nur rechteckig, sondern z.B. rund, oval, etc???
Geht das vielleicht mit VB (ohne A)?
Wie geht so etwas?
Gruß
Thomas
Private Sub CommandButton1_Click()
Me.Hide
End Sub
Private Sub UserForm_Activate()
Dim x As Long, y As Long, n As Long, mWnd As Long
x = Me.Width
y = Me.Height
n = 1000
mWnd = FindWindow(vbNullString, Me.Name)
SetWindowRgn mWnd, CreateRoundRectRgn(0, 0, x, y, n, n), True
End Sub
COLOR=#008000>' Gefunden unter: https://www.herber.de/forum/archiv/188to192/t190287.htm
Option Explicit
Private Declare Function CreateRoundRectRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'CommandButton auf der Form plazieren, da das 'x' zum schließen
'nicht mehr angezeigt wird.
Private Sub cmdEnde_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
'Größe der Userform
Me.Width = 350: Me.Height = 350
'Position des CommandButton zum Abbrechen
cmdEnde.Left = (Me.Width - cmdEnde.Width) / 3
cmdEnde.Top = Me.Height * 0.6
End Sub
Private Sub UserForm_Activate()
Dim x As Long, y As Long, n As Long, mWnd As Long
x = Me.Width
y = Me.Height
n = 4000 'bei kleinem Wert nur abgerundete Ecken
mWnd = FindWindow(vbNullString, Me.Name)
SetWindowRgn mWnd, CreateRoundRectRgn(0, 0, x, y, n, n), True
End Sub
Um eine UserForm (UF) in Excel mit abgerundeten Ecken zu gestalten, folgen diese Schritte:
Öffne den VBA-Editor:
ALT + F11, um den VBA-Editor zu öffnen.Erstelle eine neue UserForm:
Einfügen > UserForm.Füge den folgenden Code in das Codefenster der UserForm ein:
Private Declare Function CreateRoundRectRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub UserForm_Activate()
Dim x As Long, y As Long, n As Long, mWnd As Long
x = Me.Width
y = Me.Height
n = 1000 ' Krümmungsfaktor
mWnd = FindWindow(vbNullString, Me.Name)
SetWindowRgn mWnd, CreateRoundRectRgn(0, 0, x, y, n, n), True
End Sub
Teste die UserForm:
Fehler: UserForm zeigt keine abgerundeten Ecken
UserForm_Activate korrekt eingegeben wurde. Überprüfe auch, ob die UserForm die korrekten Maße hat.Fehler: Anwendung stürzt ab
Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Standard-UserForm von Excel nutzen und folgende Tricks anwenden:
Hintergrundbilder verwenden: Setze ein Bild eines Kfz-Kennzeichens als Hintergrund und platziere transparente Textboxen darüber, um den Effekt von abgerundeten Ecken zu simulieren.
Steuerelemente anpassen: Nutze Standardsteuerelemente und passe deren Eigenschaften an, um ein individuelles Design zu erreichen.
Ein Beispiel für die Verwendung einer abgerundeten UserForm:
Private Sub CommandButton1_Click()
Me.Hide ' Schließt die UserForm
End Sub
Diese einfache Funktion kann verwendet werden, um die UserForm zu schließen, wenn der Benutzer auf den Button klickt.
Experimentiere mit verschiedenen Krümmungsfaktoren: Ändere den Wert von n in der UserForm_Activate()-Methode, um die Rundheit der Ecken zu beeinflussen. Kleinere Werte erzeugen abgerundete Ecken, während größere Werte die Ecken nahezu rund machen.
Verwende eigene Grafiken: Um das Design weiter zu individualisieren, kannst du eigene Grafiken erstellen, die den Look deiner UserForm verbessern.
1. Wie kann ich die UserForm transparent machen?
Antwort: Eine vollständige Transparenz ist in VBA nicht möglich, aber du kannst die Hintergrundfarbe ändern und transparente Textboxen verwenden.
2. Funktioniert dieser Code auch in Excel 2016?
Antwort: Ja, dieser Code funktioniert in den meisten modernen Versionen von Excel, einschließlich Excel 2016.
3. Kann ich weitere Formen erstellen?
Antwort: Ja, du kannst verschiedene Formen und Designs erstellen, indem du mit den API-Funktionen experimentierst und die Parameter anpasst.
4. Was sind die Grenzen bei der Gestaltung?
Antwort: Die Gestaltungsmöglichkeiten sind durch die Funktionen von Excel und VBA begrenzt. Für komplexere Designs könnte es notwendig sein, auf andere Programmiersprachen oder Plattformen zurückzugreifen.