Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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

UserForm Minimieren Maximieren

UserForm Minimieren Maximieren
15.02.2018 07:29:12
Alba
Hallo zusammen
ich versuche einen Code einzufügen um die UserForm zu Minimieren Maximieren

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

Meine UserForm heißt "ZfP_Protokolle" ich habe schon alles versucht überall wo UserForm steht _
in "ZfP_Protokolle" umzuändern bekomme aber immer den fehler: "Fehler beim Kompilieren: _
Benutzerdefinierter Typ nicht definiert" immer in dieser Zeile

m_objUserForm As clsUserForm

Danke im Voraus an alle Helfer :-)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Minimieren Maximieren
15.02.2018 07:47:06
Burak
Muss es denn Minimieren und Maximieren sein? reicht UserForm.Show und .Hide nicht?
Bin auch der Meinung …
15.02.2018 08:34:05
RPP63
… die Finger von APIs zu lassen, wenn man kaum Kenntnisse hat.
Anyway: Klassennamen zu ändern, ist nicht nur fahrlässig, sondern schlicht falsch!
Gruß Ralf
Teile die Meinungen, hier mein Senf dazu
15.02.2018 08:58:09
Peter(silie)
Hallo,
erstmal sage ich: Lass die Finger davon, dass wird ein Schlachtfeld.
Wenn es wirklich so wichtig ist, dass die UF minimierbar ist,
dann erstelle eine App in Visual Basic .Net oder C# .Net
Dort gibt es WPFs und Windows Forms.
Die kannst du minimieren, maximieren und du kannst die Controls
gescheit skalieren.
Du solltest dir im klaren sein, dass es für 32bit und 64bit Systeme verschiedene
API Funktionen gibt.
Eine 32bit Function in einer 64bit Umgebung lässt dein Office Programm abstürzen.
Wenn du es trotzdem weiter versuchen willst, hier ein paar nützliches sachen:
64bit Office benutzt VBA7, 32bit aber nicht!
Du musst also vorher auch folgendes machen:
#If VBA7 Then
' API function to locate a window.
Declare PtrSafe Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr
' API function to retrieve a window's dimensions.
Declare PtrSafe Function GetWindowRect Lib "user32" ( _
ByVal hwnd As LongPtr, _
lpRect As RECT) As Long
#Else
' API function to locate a window.
Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
' API function to retrieve a window's dimensions.
Declare Function GetWindowRect Lib "user32" ( _
ByVal hwnd As Long, _
lpRect As RECT) As Long
#End If
Hier ein Link zu 64bit Funktionen die es in 32bit nicht gibt:
https://msdn.microsoft.com/en-us/library/aa383663(VS.85).aspx
Hier eine Liste mit Functions nach Release Date:
https://msdn.microsoft.com/en-us/library/aa383687(VS.85).aspx
Hier ein Microsoft Add-In dass die Kompabilität deines Codes prüft:
https://technet.microsoft.com/en-us/library/ee833946(office.14).aspx
Anzeige
AW: UserForm Minimieren Maximieren
16.02.2018 07:06:40
Alba
Hallo zusammen
also mit dem Klassenmodul "clsUserForm" hat es geklappt und bis jetzt kein Ärger.
Hab eure Warnungen aber erst genommen und zur Sicherheit eine Sicherungskopie der Datei gemacht :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige