Excel 32 / 64- Bit
14.11.2022 08:27:27
Thomas
Habe folgendes Problem:
Ich soll eine Adressdatei erstellen, die mehrere Personen an verschiedenen Windows- und Excel- Versionen benützen.
Das Problem ist, daß einige mit der Maske (UserForm) wenig anfangen können, da ihre Bildschirmauflösung zu klein ist.
Nun habe ich Folgendes hier im forum gefunden, was auch sehr gut klappt:
Das gehört in das Initialize Ereignis deiner Userform
Option Explicit
Private Sub UserForm_Initialize()
Me.Width = ScreenResolution(1)
Me.Height = (ScreenResolution(1) / 4) * 3
End Sub
'Das gehört in ein normales ModulPrivate Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Enum ScreenArgs
HORIZONTAL
VERTIKAL
End Enum
Public Function ScreenResolution(HV As ScreenArgs) As Long
If HV = 0 Or HV = 1 Then ScreenResolution = GetSystemMetrics(HV)
End Function
Das Problem ist nur, daß die Funktion für die 32-Bit- Version geschrieben ist, was eben bei anderen Rechnern Fehler macht.Ich habe es damit versucht, möchte Excel aber nicht:
#If VBA7 And Win64 Then
Public Declare PtrSafe Function GetSystemMetrics Lib "User32" (ByVal nIndex As LongLong) As LongLong
#Else
Public Declare Function GetSystemMetrics Lib "User32" (ByVal nIndex As Long) As Long
#End If
Public Enum ScreenArgs
Horizontal
VERTIKAL
End Enum
Public Function ScreenResolution(HV As ScreenArgs) As Long
If HV = 0 Or HV = 1 Then ScreenResolution = GetSystemMetrics(HV)
End Function
Wenn mir bitte jemand helfen könnte, wäre ich sehr dankbar!