Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1244to1248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Userform Minimieren Maximieren (Klassenmodul)

VBA: Userform Minimieren Maximieren (Klassenmodul)
Lombe
Hi Leute,
ich kenn mich mit Klassenmodule wenig aus und habe daher folgendes Problem.
Meine Userform hat neben dem Schließkreuz rechts oben nun auch die Minimeren und Maximieren Schaltflächen dank der Codes (siehe Quellenangaben) die u.a. im Klassenmodul stehen.
Frage:
Ich möchte nun, dass die Userform direkt nach dem Aufruf „maximal“ („Vergrößern“) und somit gleich Bildschirmfüllend erscheint.
Vereinfacht gesagt möchte ich per VBA die Maximieren Schaltfläche neben dem Schließkreuz nach dem Start betätigen.
Derzeit erscheint die Userform beim Start am Bildschirm im „Verkleinern“ Modus
und hat die Abmessungen der Eigenschaften (width, height).
https://www.herber.de/bbs/user/78382.xlsm
Hinweis:
Es reicht mir leider nicht die width und height Eigenschaft der Userform beim Start (Initialisieren) auf
Userform1.Height = Application.Height
Userform1.Width = Application.Width
zu stellen, denn dann ist die Userform ja immer noch nicht im Vergrößern“-Modus (komplett maximiert).
Zwischen „Verkleinern“ und „Vergrößern“ wäre zu dem auch kaum ein Unterschied zu erkennen (beides wäre annähernd Bildschirmgroß)
und ein „Ziehen“ der Userformränder mit der Maus wäre dann auch nicht mehr so einfach möglich…
Danke für jegliche Information!
Quellenangaben:
www.herber.de/forum/archiv/796to800/t799902.htm
www.vb-fun.de

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA: Userform Minimieren Maximieren (Klassenmodul)
13.01.2012 00:54:48
Nepumuk
Hallo,
im Modul des Userforms:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPlacement Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByRef lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function GetWindowPlacement Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByRef lpwndpl As WINDOWPLACEMENT) As Long

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type WINDOWPLACEMENT
    Length As Long
    flags As Long
    showCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type

Private m_objUserForm As clsUserForm
Private m_blnFormInit As Boolean

Private Const GC_CLASSNAMEMSUSERFORM = "ThunderDFrame"
Private Const SW_MAXIMIZE = 3

Private Sub UserForm_Activate()
    Dim lngHwnd As Long
    Dim udtWinEst As WINDOWPLACEMENT
    Set m_objUserForm = New clsUserForm
    Set m_objUserForm.Form = Me
    lngHwnd = FindWindow(GC_CLASSNAMEMSUSERFORM, Caption)
    Call GetWindowPlacement(lngHwnd, udtWinEst)
    udtWinEst.showCmd = SW_MAXIMIZE
    Call SetWindowPlacement(lngHwnd, udtWinEst)
End Sub

Alles andere in dem Modul kannst du löschen.
Gruß
Nepumuk
Anzeige
AW: VBA: Userform Minimieren Maximieren (Klassenmodul)
16.01.2012 10:32:41
Lombe
Hi Nepumuk,
super, das klappt so weit prima!
Es ergibt sich nun doch noch eine weitere Frage.
Ist es möglich, dass im verkleinern Modus, rechts und unten ein Scrollbalken (ScrollBarsBoth) in der Userform erscheinen,
diese Scrollbalken aber im maximierten Zustand (das ist der Normalzustand der Userform) wieder verschwinden?
Was muss im Code noch geändert werden?
Gruß
Lombe
AW: VBA: Userform Minimieren Maximieren (Klassenmodul)
16.01.2012 21:14:10
Nepumuk
Hallo,
im Modul des Userforms:
Private Sub UserForm_Resize()
    If Height >= ScrollHeight And Width >= ScrollWidth Then
        ScrollBars = fmScrollBarsNone
    ElseIf Height >= ScrollHeight And Width < ScrollWidth Then
        ScrollBars = fmScrollBarsHorizontal
    ElseIf Height < ScrollHeight And Width >= ScrollWidth Then
        ScrollBars = fmScrollBarsVertical
    Else
        ScrollBars = fmScrollBarsBoth
    End If
End Sub

Gruß
Nepumuk
Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige