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

Ereigniscode für Minimieren/Maximieren von Excel

Ereigniscode für Minimieren/Maximieren von Excel
Excel
Hallo Wissende,
nachstehender Code wertet aus ob das Fenster der Arbeitsmappe minimiert/maximiert wird.
Wie kann ich das Gleiche tun mit der Excel-Instanz?
Gruß ^ Danke
Reinhard

Private Sub Workbook_WindowResize(ByVal Wn As Window)
Select Case Wn.WindowState
Case xlMaximized
MsgBox "maximiert"
Case xlMinimized
MsgBox "minimiert"
Case xlNormal
MsgBox "weder noch"
Case Else
MsgBox "unerwartet"
End Select
MsgBox ThisWorkbook.Parent.WindowState  'Zustand der Excelinstanz
End Sub

AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 15:10:25
Excel
Hi Reinhard
Bin nich sicher, ungetestet
Application.WindowsSize
?
Ciao
Thorsten
AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 15:20:08
Excel
Hallo Thorsten,
sorry, hab's wohl wieder mal blöd erklärt :-(
ich suche Ereigniscode der reagiert wenn ich Excel in die Taskleiste verkleinere und
auch wenn ich es wieder als Fenster maximiere.
Quasi sowas:
Private Sub ExcelInstanz_WindowResize(ByVal EI As Window)
Gruß
Reinhard
AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 18:30:15
Excel
Hallo,
so etwas gibt es in Excel nicht. Ich hab aber eine DLL mit der du das machen kannst. Interesse?
Gruß
Nepumu
AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 19:27:53
Excel
Hallo Max,
aber ja, danke erstmal.
Gruß
Reinhard
Anzeige
AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 19:44:47
Excel
Hallo,
in der Zip eine Mappe mit dem Anwendungsbeispiel. Minimieren, maximieren und normalisieren löst in Modul basWindowSize eine Msgbox aus. Die Klasse in der Mappe registriert die DLL automatisch bei Bedarf. https://www.herber.de/bbs/user/78901.zip
Der Code in der DLL:
' **********************************************************************
' Modul: clsWindowResize Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public Event WindowResize(ByVal plngSize As Long)

Private Sub Class_Initialize()
    Load Form1
    Set Form1.mobjWindowResizeClass = Me
    Form1.Timer1.Interval = 100
End Sub

Private Sub Class_Terminate()
    Form1.Timer1.Interval = 0
    Unload Form1
End Sub

Public Property Let Excel_Hwnd(ByVal pvlngExcel_Hwnd As Long)
    Form1.ExcelHwnd = pvlngExcel_Hwnd
End Property

Friend Property Let NewWindowSize(ByVal pvWindowSize As Long)
    RaiseEvent WindowResize(pvWindowSize)
End Property

' **********************************************************************
' Modul: Form1 Typ: Userform
' **********************************************************************

Option Explicit

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

Public mobjWindowResizeClass As clsWindowResize

Private mlngExcelHwnd As Long
Private mlngWindowSize As Long

Private Sub Form_Terminate()
    Set mobjWindowResizeClass = Nothing
End Sub

Private Sub Timer1_Timer()
    Static sblnNotFirstTime As Boolean
    Dim udtWinEst As WINDOWPLACEMENT
    udtWinEst.Length = Len(udtWinEst)
    Call GetWindowPlacement(mlngExcelHwnd, udtWinEst)
    If mlngWindowSize <> udtWinEst.showCmd Then
        mlngWindowSize = udtWinEst.showCmd
        If sblnNotFirstTime Then _
            mobjWindowResizeClass.NewWindowSize = mlngWindowSize
        sblnNotFirstTime = True
    End If
End Sub

Friend Property Let ExcelHwnd(ByVal pvlngExcelHwnd As Long)
    mlngExcelHwnd = pvlngExcelHwnd
End Property

Gruß
Nepumuk
Anzeige
AW: Ereigniscode für Minimieren/Maximieren von Excel
13.02.2012 20:57:05
Excel
Hallo Max,
sehr schön mit der Test.xls, ansonsten hätte ich gewaltige Probleme mit dem DLL-Code gehabt.
Funktioniert bestens in XL 2000.
Gruß
Reinhard

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige