Hallo Walter,
Da musst du schon genau wissen, wonach du suchen musst. Stichwort: Application-Events. Zunächst brauchst du aber erst mal eine personal.xlsb. Falls du die noch nicht hast, kannst du sie ganz leicht anlegen, indem du mit dem Makrorekorder ein beliebiges Makro aufzeichnest und im Dialog unter Speichern in: "Persönliche Makroarbeitsmappe" auswählst. Die Aufzeichnung kannst du dann gleich wieder abbrechen, da das Makro selbst irrelevant ist.
In der Persönlichen Makroarbeitsmappe verfährst du dann, wie im Link beschrieben. Füge ein Klassenmodul hinzu - z.B. Klasse1 und gib dort diesen Code ein:
Public WithEvents App As Application
Private Sub App_NewWorkbook(ByVal Wb As Workbook)
Call FensterGroesseAnpassen
End Sub
Private Sub App_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
Call FensterGroesseAnpassen
End Sub
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
Call FensterGroesseAnpassen
End Sub
Sub FensterGroesseAnpassen()
With ActiveWindow
.WindowState = xlNormal
.Left = 50
.Top = 50
.Width = 1000
.Height = 600
End With
End Sub
Anschließend gehst du in das Modul "DieseArbeitsmappe" (ebenfalls in der Personal.xlsb) und gibst dort den folgenden Code ein.
Dim myapp As New Klasse1
Private Sub Workbook_Open()
Set myapp.App = Application
End Sub
Der zweite Code verbindet das Klassenmodul mit der Variablen myapp in welcher eine eine Referenz auf die Applikation abgelegt wird. Dadurch wird bei jedem durch Excel ausgelösten Ereignis zuerst der Code im Klassenmodul ausgeführt, bevor andere Events gestartet werden.
Gruß Mr. K.
|