Excel vba userform maximize event

Excel vba userform maximize event
2019-10-21T18:18:50+02:00
2019-10-24T08:01:44+02:00
2022-10-15T21:16:07+02:00
Peti_22
Üdv, 

Van egy Excelben írt vba kód ami hozzá adja a userformhoz a minimize és maximize buttonokat. 

Option Explicit Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Const WS_MINIMIZEBOX As Long = &H20000 Private Const WS_MAXIMIZEBOX As Long = &H10000 Private Const GWL_STYLE As Long = (-16) Private Const WS_SYSMENU As Long = &H80000 Private Const SW_SHOWMAXIMIZED = 3 Private Sub UserForm_Activate() Dim Ret As Long, styl As Long Ret = FindWindow("ThunderDFrame", Me.Caption) styl = GetWindowLong(Ret, GWL_STYLE) styl = styl Or WS_SYSMENU styl = styl Or WS_MINIMIZEBOX styl = styl Or WS_MAXIMIZEBOX SetWindowLong Ret, GWL_STYLE, (styl) DrawMenuBar Ret End Sub
Milyen módon tudom elérni, hogy induláskor a maximális mérettel induljon? 
Nem arra gondolok, hogy lekérdezem a képernyő méretet és beállítom arra a userform méretét! Arra gondolok amikor rá nyomok a maximize buttonra és az szépen teljes méretű lesz. 

Ez megoldató valahogy?
Mutasd a teljes hozzászólást!

  • Szia,

    Azt próbáltad, hogy a UserForm Inintialize event-hez írod a kódot, hogy megnyitáskor automatikusan lefuson?
    Vagy kitudod választani fölül az Initialize eventet vagy a UserForm mögé, ahol az eddigi Activate event-ed van beíroda a következő szubrutint:

    Private Sub UserForm_Initialize() End Sub
    És akkor ebbe kell beírnod a kódod hogy megnyitáskor automatikusan maximális mérettel induljon.
    Szerintem elöször próbáld ki ezt:

    Private Sub UserForm_Initialize() With Application .WindowState = xlMaximized Zoom = Int(.Width / Me.Width * 100) ' nem biztos hogy neked kell Width = .Width ' nem biztos hogy neked kell Height = .Height ' nem biztos hogy neked kell End With End Sub
    Ha nem erre gondoltál akkor próbáld ezt:

    Private Sub UserForm_Initialize() With Me .Width = Application.UsableWidth .Height = Application.UsableHeight 'VAGY ' .Width = Application.Width ' .Height = Application.Height End With End Sub
    A második kérdésedrre nem tudom hogy adtam-e megfelelő választ. Ha nem akkor kérlek írd le máskép! Köszi!
    Mutasd a teljes hozzászólást!
  • Az elsőben a Zoom-al lehet játszani, hogy a felbontás megfelelő legyen. (10-400 között lehet)
    Mutasd a teljes hozzászólást!
  • Ezt próbáltam, ezzel az a baj, hogy csak akkora lesz az ablak amekkora helye van, de nem ugyan az mintha a jobb felső sarokban kattintanék rá a teljes méretűvé tevő gombra
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd